active_triples-solrizer 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +27 -0
- data/.travis.yml +14 -0
- data/AUTHORS.md +3 -0
- data/Gemfile +4 -0
- data/Guardfile +9 -0
- data/LICENSE +12 -0
- data/README.md +253 -0
- data/active_triples-solrizer.gemspec +36 -0
- data/lib/active_triples/solrizer.rb +38 -0
- data/lib/active_triples/solrizer/configuration.rb +54 -0
- data/lib/active_triples/solrizer/indexing_service.rb +52 -0
- data/lib/active_triples/solrizer/profile_indexing_service.rb +53 -0
- data/lib/active_triples/solrizer/properties_indexing_service.rb +139 -0
- data/lib/active_triples/solrizer/solr_service.rb +141 -0
- data/lib/active_triples/solrizer/version.rb +5 -0
- data/solr/schema.xml +438 -0
- data/solr/solrconfig.xml +179 -0
- data/spec/active_triples/solrizer/indexing_service_spec.rb +79 -0
- data/spec/active_triples/solrizer/profile_indexing_service_spec.rb +149 -0
- data/spec/active_triples/solrizer/properties_indexing_service_spec.rb +78 -0
- data/spec/spec_helper.rb +24 -0
- data/spec/support/dummy_resource.rb +1125 -0
- metadata +209 -0
data/solr/solrconfig.xml
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<config>
|
3
|
+
<!-- NOTE: various comments and unused configuration possibilities have been purged
|
4
|
+
from this file. Please refer to http://wiki.apache.org/solr/SolrConfigXml,
|
5
|
+
as well as the default solrconfig file included with Solr -->
|
6
|
+
|
7
|
+
<abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
|
8
|
+
|
9
|
+
<luceneMatchVersion>4.9</luceneMatchVersion>
|
10
|
+
|
11
|
+
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
|
12
|
+
|
13
|
+
<!-- solr lib dirs -->
|
14
|
+
<lib dir="../lib/contrib/analysis-extras/lib" />
|
15
|
+
<lib dir="../lib/contrib/analysis-extras/lucene-libs" />
|
16
|
+
|
17
|
+
<dataDir>${solr.data.dir:}</dataDir>
|
18
|
+
|
19
|
+
<updateHandler class="solr.DirectUpdateHandler2">
|
20
|
+
|
21
|
+
<updateLog>
|
22
|
+
<str name="dir">${solr.ulog.dir:}</str>
|
23
|
+
</updateLog>
|
24
|
+
|
25
|
+
<autoCommit>
|
26
|
+
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
|
27
|
+
<openSearcher>false</openSearcher>
|
28
|
+
</autoCommit>
|
29
|
+
|
30
|
+
<autoSoftCommit>
|
31
|
+
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
|
32
|
+
</autoSoftCommit>
|
33
|
+
|
34
|
+
</updateHandler>
|
35
|
+
|
36
|
+
<requestHandler name="search" class="solr.SearchHandler" default="true">
|
37
|
+
<!-- default values for query parameters can be specified, these
|
38
|
+
will be overridden by parameters in the request
|
39
|
+
-->
|
40
|
+
<lst name="defaults">
|
41
|
+
<str name="defType">edismax</str>
|
42
|
+
<str name="echoParams">explicit</str>
|
43
|
+
<str name="q.alt">*:*</str>
|
44
|
+
<str name="mm">2<-1 5<-2 6<90%</str>
|
45
|
+
<int name="qs">1</int>
|
46
|
+
<int name="ps">2</int>
|
47
|
+
<float name="tie">0.01</float>
|
48
|
+
<!-- this qf and pf are used by default, if not otherwise specified by
|
49
|
+
client. The default blacklight_config will use these for the
|
50
|
+
"keywords" search. See the author_qf/author_pf, title_qf, etc
|
51
|
+
below, which the default blacklight_config will specify for
|
52
|
+
those searches. You may also be interested in:
|
53
|
+
http://wiki.apache.org/solr/LocalParams
|
54
|
+
-->
|
55
|
+
<str name="qf">
|
56
|
+
id
|
57
|
+
all_text_timv
|
58
|
+
active_fedora_model_ssi
|
59
|
+
object_type_si
|
60
|
+
</str>
|
61
|
+
<str name="pf">
|
62
|
+
all_text_timv^10
|
63
|
+
</str>
|
64
|
+
|
65
|
+
<str name="author_qf">
|
66
|
+
</str>
|
67
|
+
<str name="author_pf">
|
68
|
+
</str>
|
69
|
+
<str name="title_qf">
|
70
|
+
</str>
|
71
|
+
<str name="title_pf">
|
72
|
+
</str>
|
73
|
+
<str name="subject_qf">
|
74
|
+
</str>
|
75
|
+
<str name="subject_pf">
|
76
|
+
</str>
|
77
|
+
|
78
|
+
<str name="fl">
|
79
|
+
*,
|
80
|
+
score
|
81
|
+
</str>
|
82
|
+
|
83
|
+
<str name="facet">true</str>
|
84
|
+
<str name="facet.mincount">1</str>
|
85
|
+
<str name="facet.limit">10</str>
|
86
|
+
<str name="facet.field">active_fedora_model_ssi</str>
|
87
|
+
<str name="facet.field">object_type_si</str>
|
88
|
+
|
89
|
+
<str name="spellcheck">true</str>
|
90
|
+
<str name="spellcheck.dictionary">default</str>
|
91
|
+
<str name="spellcheck.onlyMorePopular">true</str>
|
92
|
+
<str name="spellcheck.extendedResults">true</str>
|
93
|
+
<str name="spellcheck.collate">false</str>
|
94
|
+
<str name="spellcheck.count">5</str>
|
95
|
+
|
96
|
+
</lst>
|
97
|
+
<arr name="last-components">
|
98
|
+
<str>spellcheck</str>
|
99
|
+
</arr>
|
100
|
+
</requestHandler>
|
101
|
+
|
102
|
+
<requestHandler name="permissions" class="solr.SearchHandler" >
|
103
|
+
<lst name="defaults">
|
104
|
+
<str name="facet">off</str>
|
105
|
+
<str name="echoParams">all</str>
|
106
|
+
<str name="rows">1</str>
|
107
|
+
<str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
|
108
|
+
<str name="fl">
|
109
|
+
id,
|
110
|
+
access_ssim,
|
111
|
+
discover_access_group_ssim,discover_access_person_ssim,
|
112
|
+
read_access_group_ssim,read_access_person_ssim,
|
113
|
+
edit_access_group_ssim,edit_access_person_ssim,
|
114
|
+
depositor_ti,
|
115
|
+
embargo_release_date_dtsi
|
116
|
+
inheritable_access_ssim,
|
117
|
+
inheritable_discover_access_group_ssim,inheritable_discover_access_person_ssim,
|
118
|
+
inheritable_read_access_group_ssim,inheritable_read_access_person_ssim,
|
119
|
+
inheritable_edit_access_group_ssim,inheritable_edit_access_person_ssim,
|
120
|
+
inheritable_embargo_release_date_dtsi
|
121
|
+
</str>
|
122
|
+
</lst>
|
123
|
+
</requestHandler>
|
124
|
+
|
125
|
+
<requestHandler name="standard" class="solr.SearchHandler">
|
126
|
+
<lst name="defaults">
|
127
|
+
<str name="echoParams">explicit</str>
|
128
|
+
<str name="defType">lucene</str>
|
129
|
+
</lst>
|
130
|
+
</requestHandler>
|
131
|
+
|
132
|
+
<!-- for requests to get a single document; use id=666 instead of q=id:666 -->
|
133
|
+
<requestHandler name="document" class="solr.SearchHandler" >
|
134
|
+
<lst name="defaults">
|
135
|
+
<str name="echoParams">all</str>
|
136
|
+
<str name="fl">*</str>
|
137
|
+
<str name="rows">1</str>
|
138
|
+
<str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
|
139
|
+
</lst>
|
140
|
+
</requestHandler>
|
141
|
+
|
142
|
+
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
|
143
|
+
<str name="queryAnalyzerFieldType">textSpell</str>
|
144
|
+
<!-- Multiple "Spell Checkers" can be declared and used by this component
|
145
|
+
(e.g. for title_spell field)
|
146
|
+
-->
|
147
|
+
<lst name="spellchecker">
|
148
|
+
<str name="name">default</str>
|
149
|
+
<str name="field">spell</str>
|
150
|
+
<str name="spellcheckIndexDir">./spell</str>
|
151
|
+
<str name="buildOnOptimize">true</str>
|
152
|
+
</lst>
|
153
|
+
</searchComponent>
|
154
|
+
|
155
|
+
<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
|
156
|
+
|
157
|
+
<requestDispatcher handleSelect="true" >
|
158
|
+
<requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
|
159
|
+
</requestDispatcher>
|
160
|
+
|
161
|
+
<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
|
162
|
+
<requestHandler name="/update" class="solr.UpdateRequestHandler" />
|
163
|
+
<requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
|
164
|
+
|
165
|
+
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
|
166
|
+
<lst name="invariants">
|
167
|
+
<str name="q">solrpingquery</str>
|
168
|
+
</lst>
|
169
|
+
<lst name="defaults">
|
170
|
+
<str name="echoParams">all</str>
|
171
|
+
</lst>
|
172
|
+
</requestHandler>
|
173
|
+
|
174
|
+
<!-- config for the admin interface -->
|
175
|
+
<admin>
|
176
|
+
<defaultQuery>search</defaultQuery>
|
177
|
+
</admin>
|
178
|
+
|
179
|
+
</config>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'support/dummy_resource.rb'
|
3
|
+
|
4
|
+
describe ActiveTriples::Solrizer::SolrService do
|
5
|
+
|
6
|
+
describe "#generate_solr_document" do
|
7
|
+
include_context "shared dummy resource class"
|
8
|
+
|
9
|
+
context "when small number of properties" do
|
10
|
+
it "should produce solr doc with all indexed properties" do
|
11
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_short_all_values).generate_solr_document ).to eq expected_solr_doc_short_all_values
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should produce solr doc with only properties with values indexed" do
|
15
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_short_partial_values).generate_solr_document ).to eq expected_solr_doc_short_partial_values
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when all properties indexed" do
|
20
|
+
it "should produce solr doc with all indexed properties" do
|
21
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_indexed).generate_solr_document ).to eq expected_solr_doc_indexed
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "when all properties stored" do
|
26
|
+
it "should produce solr doc with all stored properties" do
|
27
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_stored).generate_solr_document ).to eq expected_solr_doc_stored
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when all properties stored and indexed" do
|
32
|
+
it "should produce solr doc with all stored indexed properties" do
|
33
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_stored_indexed).generate_solr_document ).to eq expected_solr_doc_stored_indexed
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context "when all properties indexed and multi-valued" do
|
38
|
+
it "should produce solr doc with all indexed properties" do
|
39
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_indexed_multi).generate_solr_document ).to eq expected_solr_doc_indexed_multi
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "when all properties stored and multi-valued" do
|
44
|
+
it "should produce solr doc with all stored properties" do
|
45
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_stored_multi).generate_solr_document ).to eq expected_solr_doc_stored_multi
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "when all properties stored and indexed and multi-valued" do
|
50
|
+
it "should produce solr doc with all stored indexed properties" do
|
51
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_stored_indexed_multi).generate_solr_document ).to eq expected_solr_doc_stored_indexed_multi
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context "when all properties indexed and range" do
|
56
|
+
it "should produce solr doc with all indexed properties optimized for range" do
|
57
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_indexed_range).generate_solr_document ).to eq expected_solr_doc_indexed_range
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when all properties indexed and sortable" do
|
62
|
+
it "should produce solr doc with all indexed properties set up for sorting" do
|
63
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_indexed_sort).generate_solr_document ).to eq expected_solr_doc_indexed_sort
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when all properties indexed and vectored" do
|
68
|
+
it "should produce solr doc with all indexed properties and text fields vectored" do
|
69
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_indexed_vector).generate_solr_document ).to eq expected_solr_doc_indexed_vector
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "when all properties indexed and guessing the type" do
|
74
|
+
it "should produce solr doc with all indexed properties with appropriate types" do
|
75
|
+
expect( ActiveTriples::Solrizer::IndexingService.new(dr_indexed_guess).generate_solr_document ).to eq expected_solr_doc_indexed_guess
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'support/dummy_resource.rb'
|
3
|
+
|
4
|
+
describe ActiveTriples::Solrizer::ProfileIndexingService do
|
5
|
+
include_context "shared dummy resource class"
|
6
|
+
|
7
|
+
describe "#export" do
|
8
|
+
|
9
|
+
context "when small number of properties" do
|
10
|
+
it "should produce object profile holding serialization of the resource" do
|
11
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_short_all_values).export ).to eq expected_object_profile_short_all_values
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should produce object profile holding serialization of the resource" do
|
15
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_short_partial_values).export ).to eq expected_object_profile_short_partial_values
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when all properties indexed" do
|
20
|
+
it "should produce object profile holding serialization of the resource" do
|
21
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_indexed).export ).to eq expected_object_profile_indexed
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "when all properties stored" do
|
26
|
+
it "should produce object profile holding serialization of the resource" do
|
27
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_stored).export ).to eq expected_object_profile_stored
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when all properties stored and indexed" do
|
32
|
+
it "should produce object profile holding serialization of the resource" do
|
33
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_stored_indexed).export ).to eq expected_object_profile_stored_indexed
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context "when all properties indexed and multi-valued" do
|
38
|
+
it "should produce object profile holding serialization of the resource" do
|
39
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_indexed_multi).export ).to eq expected_object_profile_indexed_multi
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "when all properties stored and multi-valued" do
|
44
|
+
it "should produce object profile holding serialization of the resource" do
|
45
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_stored_multi).export ).to eq expected_object_profile_stored_multi
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "when all properties stored and indexed and multi-valued" do
|
50
|
+
it "should produce object profile holding serialization of the resource" do
|
51
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_stored_indexed_multi).export ).to eq expected_object_profile_stored_indexed_multi
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context "when all properties indexed and range" do
|
56
|
+
it "should produce object profile holding serialization of the resource" do
|
57
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_indexed_range).export ).to eq expected_object_profile_indexed_range
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when all properties indexed and sortable" do
|
62
|
+
it "should produce object profile holding serialization of the resource" do
|
63
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_indexed_sort).export ).to eq expected_object_profile_indexed_sort
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when all properties indexed and vectored" do
|
68
|
+
it "should produce object profile holding serialization of the resource" do
|
69
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_indexed_vector).export ).to eq expected_object_profile_indexed_vector
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "when all properties indexed and guessing the type" do
|
74
|
+
it "should produce object profile holding serialization of the resource" do
|
75
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_indexed_guess).export ).to eq expected_object_profile_indexed_guess
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context "when a property is a resource" do
|
80
|
+
before do
|
81
|
+
class DummyResourceB < ActiveTriples::Resource
|
82
|
+
configure :type => RDF::URI('http://example.org/SomeClass')
|
83
|
+
end
|
84
|
+
class DummyResourceA < ActiveTriples::Resource
|
85
|
+
configure :type => RDF::URI('http://example.org/SomeClass')
|
86
|
+
property :resource_b, :predicate => RDF::URI("http://example.org/ontology/related_object")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should put the object id in place of the resource" do
|
91
|
+
dr_b = DummyResourceB.new('http://www.example.org/dr_b')
|
92
|
+
dr_a = DummyResourceA.new('http://www.example.org/dr_a')
|
93
|
+
dr_a.resource_b = dr_b
|
94
|
+
|
95
|
+
expected_object_profile =
|
96
|
+
'{"id":"http://www.example.org/dr_a",'\
|
97
|
+
'"resource_b":"http://www.example.org/dr_b"}'
|
98
|
+
|
99
|
+
expect( ActiveTriples::Solrizer::ProfileIndexingService.new(dr_a).export ).to eq expected_object_profile
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe "#import" do
|
105
|
+
context "when all properties have values" do
|
106
|
+
it "should fill a resource with values by deserializing the object profile stored with the solr doc" do
|
107
|
+
filled_resource = ActiveTriples::Solrizer::ProfileIndexingService.new(dr_short_all_values).import( expected_object_profile_short_all_values )
|
108
|
+
expect( filled_resource.id ).to eq 'http://www.example.org/dr1'
|
109
|
+
expect( filled_resource.title ).to eq ['Test Title']
|
110
|
+
expect( filled_resource.description_si ).to eq ['Test text description stored and indexed.']
|
111
|
+
expect( filled_resource.borrower_uri_i ).to eq ['http://example.org/i/b2']
|
112
|
+
expect( filled_resource.clip_number_simr ).to eq [7,8,9,10]
|
113
|
+
expect( filled_resource.price_s ).to eq [789.01]
|
114
|
+
expect( filled_resource.bookEdition ).to eq ['Ed. 2']
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context "when some properties do not have values" do
|
119
|
+
it "should fill a resource with values by deserializing the object profile stored with the solr doc" do
|
120
|
+
filled_resource = ActiveTriples::Solrizer::ProfileIndexingService.new(dr_short_partial_values).import( expected_object_profile_short_partial_values )
|
121
|
+
expect( filled_resource.id ).to eq 'http://www.example.org/dr1'
|
122
|
+
expect( filled_resource.title ).to eq ['Test Title']
|
123
|
+
expect( filled_resource.description_si ).to eq ['Test text description stored and indexed.']
|
124
|
+
expect( filled_resource.borrower_uri_i ).to eq []
|
125
|
+
expect( filled_resource.clip_number_simr ).to eq []
|
126
|
+
expect( filled_resource.price_s ).to eq [789.01]
|
127
|
+
expect( filled_resource.bookEdition ).to eq ['Ed. 2']
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
context "when properties have multiple values and all types represented" do
|
132
|
+
it "should fill a resource with values by deserializing the object profile stored with the solr doc" do
|
133
|
+
filled_resource = ActiveTriples::Solrizer::ProfileIndexingService.new(dr_stored_indexed_multi).import( expected_object_profile_stored_indexed_multi )
|
134
|
+
expect( filled_resource.id ).to eq 'http://www.example.org/dr_sim'
|
135
|
+
expect( filled_resource.title ).to eq ['Test Title','Title 2']
|
136
|
+
expect( filled_resource.description ).to eq ['Test text description stored and indexed and multi values.','Desc 2','Desc 3']
|
137
|
+
expect( filled_resource.borrower_uri ).to eq ['http://example.org/b_sim','http://example.org/b_sim3']
|
138
|
+
expect( filled_resource.clip_number ).to eq [3,4,5,6]
|
139
|
+
expect( filled_resource.answer_count ).to eq [12345678901234567893,32345678901234567893]
|
140
|
+
expect( filled_resource.price ).to eq [123.43,323.43]
|
141
|
+
expect( filled_resource.max_price ).to eq [12345678901234567.83,32345678901234567.83]
|
142
|
+
expect( filled_resource.modified_time ).to eq ['1995-12-31T23:59:53Z','2015-12-31T23:59:53Z']
|
143
|
+
expect( filled_resource.is_proprietary ).to eq [false,true]
|
144
|
+
# expect( filled_resource.latitude =
|
145
|
+
expect( filled_resource.bookEdition ).to eq ['Ed. 3','Ed. 3a']
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'support/dummy_resource.rb'
|
3
|
+
|
4
|
+
describe ActiveTriples::Solrizer::PropertiesIndexingService do
|
5
|
+
include_context "shared dummy resource class"
|
6
|
+
|
7
|
+
describe "#export" do
|
8
|
+
context "when small number of properties" do
|
9
|
+
it "should produce object profile holding serialization of the resource" do
|
10
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_short_all_values).export ).to eq expected_solr_properties_short_all_values
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should produce object profile holding serialization of the resource" do
|
14
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_short_partial_values).export ).to eq expected_solr_properties_short_partial_values
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "when all properties indexed" do
|
19
|
+
it "should produce object profile holding serialization of the resource" do
|
20
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_indexed).export ).to eq expected_solr_properties_indexed
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when all properties stored" do
|
25
|
+
it "should produce object profile holding serialization of the resource" do
|
26
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_stored).export ).to eq expected_solr_properties_stored
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when all properties stored and indexed" do
|
31
|
+
it "should produce object profile holding serialization of the resource" do
|
32
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_stored_indexed).export ).to eq expected_solr_properties_stored_indexed
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "when all properties indexed and multi-valued" do
|
37
|
+
it "should produce object profile holding serialization of the resource" do
|
38
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_indexed_multi).export ).to eq expected_solr_properties_indexed_multi
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "when all properties stored and multi-valued" do
|
43
|
+
it "should produce object profile holding serialization of the resource" do
|
44
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_stored_multi).export ).to eq expected_solr_properties_stored_multi
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "when all properties stored and indexed and multi-valued" do
|
49
|
+
it "should produce object profile holding serialization of the resource" do
|
50
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_stored_indexed_multi).export ).to eq expected_solr_properties_stored_indexed_multi
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context "when all properties indexed and range" do
|
55
|
+
it "should produce object profile holding serialization of the resource" do
|
56
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_indexed_range).export ).to eq expected_solr_properties_indexed_range
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "when all properties indexed and sortable" do
|
61
|
+
it "should produce object profile holding serialization of the resource" do
|
62
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_indexed_sort).export ).to eq expected_solr_properties_indexed_sort
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "when all properties indexed and vectored" do
|
67
|
+
it "should produce object profile holding serialization of the resource" do
|
68
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_indexed_vector).export ).to eq expected_solr_properties_indexed_vector
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when all properties indexed and guessing the type" do
|
73
|
+
it "should produce object profile holding serialization of the resource" do
|
74
|
+
expect( ActiveTriples::Solrizer::PropertiesIndexingService.new(dr_indexed_guess).export ).to eq expected_solr_properties_indexed_guess
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|