solrizer 3.0.0.pre4 → 3.0.0.pre5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/README.textile +88 -27
- data/lib/solrizer.rb +5 -0
- data/lib/solrizer/default_descriptors.rb +17 -16
- data/lib/solrizer/descriptor.rb +1 -1
- data/lib/solrizer/field_mapper.rb +5 -4
- data/lib/solrizer/version.rb +1 -1
- data/spec/units/common_spec.rb +3 -3
- data/spec/units/field_mapper_spec.rb +9 -9
- data/spec/units/solrizer_spec.rb +16 -8
- data/spec/units/xml_terminology_based_solrizer_spec.rb +5 -5
- metadata +31 -28
data/Gemfile
CHANGED
data/README.textile
CHANGED
@@ -25,10 +25,7 @@ h2. Usage
|
|
25
25
|
|
26
26
|
h3. Fire up the console:
|
27
27
|
|
28
|
-
The code snippets in the following sections can be cut/
|
29
|
-
and demonstrate the functionality underlying the implementation-specific gems, such as solrizer-fedora.
|
30
|
-
|
31
|
-
|
28
|
+
The code snippets in the following sections can be cut/pasted into your console, giving you the opportunity to play with Solrizer.
|
32
29
|
|
33
30
|
Start up a console and load solrizer:
|
34
31
|
|
@@ -41,54 +38,118 @@ require "solrizer"
|
|
41
38
|
|
42
39
|
h3. Field Mapper
|
43
40
|
|
44
|
-
The FieldMapper maps term names and values to Solr fields, based on the term’s data type and any index_as options. Solrizer comes with default mappings (which are defined in the config/solr_mappings.yml):
|
41
|
+
The FieldMapper maps term names and values to Solr fields, based on the term’s data type and any index_as options. Solrizer comes with default mappings (which are defined in the config/solr_mappings.yml) to dynamic field types defined in the Hydra Solr schema.xml file. A copy of that is available :
|
42
|
+
https://github.com/projecthydra/hydra-head/blob/master/hydra-core/lib/generators/hydra/templates/solr_conf/conf/schema.xml
|
43
|
+
|
44
|
+
More information on the conventions followed for the dynamic solr fields is here:
|
45
|
+
https://github.com/projecthydra/hydra-head/wiki/Solr-Schema
|
45
46
|
|
46
47
|
<pre>
|
47
48
|
default_mapper = Solrizer::FieldMapper::Default.new
|
48
49
|
|
49
50
|
# some of the default mappings in solrizer
|
50
|
-
default_mapper.solr_name("foo",:string)
|
51
|
-
default_mapper.solr_name("foo",:date)
|
52
|
-
default_mapper.solr_name("foo",:integer
|
53
|
-
default_mapper.solr_name("foo",:string,:facetable) # returns
|
54
|
-
default_mapper.solr_name("foo",:
|
55
|
-
default_mapper.solr_name("foo",:
|
51
|
+
default_mapper.solr_name("foo",:string,:searchable) # returns foo_tesim
|
52
|
+
default_mapper.solr_name("foo",:date,:searchable) # returns foo_dtsim
|
53
|
+
default_mapper.solr_name("foo",:integer,:searchable # returns foo_isim
|
54
|
+
default_mapper.solr_name("foo",:string,:facetable) # returns foo_sim
|
55
|
+
default_mapper.solr_name("foo",:integer,:facetable) # returns foo_iim
|
56
|
+
default_mapper.solr_name("foo",:string,:sortable) # returns foo_si
|
57
|
+
default_mapper.solr_name("foo",:string,:displayable) # returns foo_ssm
|
56
58
|
</pre>
|
57
59
|
|
58
|
-
|
60
|
+
## Using default indexing strategies
|
59
61
|
|
60
62
|
<pre>
|
61
|
-
|
62
|
-
|
63
|
+
solr_doc = {}
|
64
|
+
Solrizer.insert_field(solr_doc, 'title', 'whatever', :searchable)
|
65
|
+
=> {"title_tesim"=>["whatever"]}
|
66
|
+
|
67
|
+
Solrizer.insert_field(solr_doc, 'pub_date', 'Nov 2012', :sortable, :displayable)
|
68
|
+
=> {"title_tesim"=>["whatever"], "pub_date_ssi"=>["Nov 2012"], "pub_date_ssm"=>["Nov 2012"]}
|
63
69
|
</pre>
|
64
70
|
|
65
|
-
|
71
|
+
#### You can also index dates
|
72
|
+
<pre>
|
73
|
+
# as a date
|
74
|
+
solr_doc = {}
|
75
|
+
Solrizer.insert_field(solr_doc, 'pub_date', Date.parse('Nov 7th 2012'), :searchable)
|
76
|
+
=> {"pub_date_dtsi"=>["2012-11-07T00:00:00Z"]}
|
77
|
+
|
78
|
+
# or as a string
|
79
|
+
solr_doc = {}
|
80
|
+
Solrizer.insert_field(solr_doc, 'pub_date', Date.parse('Nov 7th 2012'), :sortable, :displayable)
|
81
|
+
=> {"pub_date_ssi"=>["2012-11-07"], "pub_date_ssm"=>["2012-11-07"]}
|
82
|
+
|
83
|
+
# or a string that is stored as a date
|
84
|
+
solr_doc = {}
|
85
|
+
Solrizer.insert_field(solr_doc, 'pub_date', 'Jan 29th 2013', :dateable)
|
86
|
+
=> {"pub_date_dtsi"=>["2013-01-29T00:00:00Z"]}
|
87
|
+
</pre>
|
66
88
|
|
89
|
+
|
90
|
+
## Using a custom indexing strategy
|
91
|
+
All you have to do is create your own index descriptor:
|
67
92
|
<pre>
|
68
|
-
|
69
|
-
|
93
|
+
solr_doc = {}
|
94
|
+
displearchable = Solrizer::Descriptor.new(:integer, :indexed, :stored)
|
95
|
+
Solrizer.insert_field(solr_doc, 'some_count', 45, displearchable)
|
96
|
+
{"some_count_isi"=>["45"]}
|
70
97
|
</pre>
|
71
98
|
|
72
|
-
|
99
|
+
## Changing the behavior of a default descriptor
|
73
100
|
|
101
|
+
Simply override the methods within Solrizer::DefaultDescriptors
|
74
102
|
<pre>
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
103
|
+
# before
|
104
|
+
solr_doc = {}
|
105
|
+
Solrizer.insert_field(solr_doc, 'title', 'foobar', :facetable)
|
106
|
+
=> {"title_sim"=>["foobar"]}
|
107
|
+
|
108
|
+
# redefine facetable:
|
109
|
+
module Solrizer
|
110
|
+
module DefaultDescriptors
|
111
|
+
def self.facetable
|
112
|
+
Descriptor.new(:string, :indexed, :stored)
|
79
113
|
end
|
80
114
|
end
|
81
115
|
end
|
116
|
+
|
117
|
+
# after
|
118
|
+
solr_doc = {}
|
119
|
+
Solrizer.insert_field(solr_doc, 'title', 'foobar', :facetable)
|
120
|
+
=> {"title_ssi"=>["foobar"]}
|
82
121
|
</pre>
|
83
122
|
|
123
|
+
|
124
|
+
## Creating your own Indexers
|
84
125
|
<pre>
|
85
|
-
|
126
|
+
module MyMappers
|
127
|
+
def self.mapper_one
|
128
|
+
Solrizer::Descriptor.new(:string, :indexed, :stored)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
solr_doc = {}
|
133
|
+
|
134
|
+
Solrizer::FieldMapper.descriptors = [MyMappers]
|
135
|
+
=> [MyMappers]
|
86
136
|
|
87
|
-
|
88
|
-
|
137
|
+
Solrizer.insert_field(solr_doc, 'title', 'foobar', :mapper_one)
|
138
|
+
=> {"title_ssi"=>["foobar"]}
|
89
139
|
</pre>
|
90
140
|
|
91
|
-
|
141
|
+
## Using OM
|
142
|
+
Same as it ever was:
|
143
|
+
<pre>
|
144
|
+
t.main_title(:index_as=>[:facetable],:path=>"title", :label=>"title") { ... }
|
145
|
+
</pre>
|
146
|
+
|
147
|
+
But now you may also pass an Descriptor instance if that works for you:
|
148
|
+
<pre>
|
149
|
+
indexer = Solrizer::Descriptor.new(:integer, :indexed, :stored)
|
150
|
+
t.main_title(:index_as=>[indexer],:path=>"title", :label=>"title") { ... }
|
151
|
+
|
152
|
+
</pre>
|
92
153
|
|
93
154
|
h3. Extractor and Extractor Mixins
|
94
155
|
|
@@ -113,7 +174,7 @@ h4. Solrizer provides some default mixins:
|
|
113
174
|
<pre>
|
114
175
|
xml = "<fields><foo>bar</foo><bar>baz</bar></fields>"
|
115
176
|
|
116
|
-
extractor.xml_to_solr(xml) # returns {:
|
177
|
+
extractor.xml_to_solr(xml) # returns {:foo_tesim=>"bar", :bar_tesim=>"baz"}
|
117
178
|
</pre>
|
118
179
|
|
119
180
|
h4. Solrizer::XML::TerminologyBasedSolrizer
|
data/lib/solrizer.rb
CHANGED
@@ -23,6 +23,11 @@ module Solrizer
|
|
23
23
|
@@default_field_mapper = field_mapper
|
24
24
|
end
|
25
25
|
|
26
|
+
|
27
|
+
def self.solr_name(*args)
|
28
|
+
default_field_mapper.solr_name(*args)
|
29
|
+
end
|
30
|
+
|
26
31
|
# @params [Hash] doc the hash to insert the value into
|
27
32
|
# @params [String] name the name of the field (without the suffix)
|
28
33
|
# @params [String,Date] value the value to be inserted
|
@@ -1,16 +1,13 @@
|
|
1
1
|
module Solrizer
|
2
2
|
module DefaultDescriptors
|
3
3
|
|
4
|
-
#
|
5
|
-
def self.facetable
|
6
|
-
@facetable ||= Descriptor.new(:string, :indexed, :multivalued)
|
7
|
-
end
|
8
|
-
|
9
|
-
# Most interesting case because the suffixe produced depends on the type parameter
|
10
|
-
# produces suffixes:
|
4
|
+
# The suffix produced depends on the type parameter -- produces suffixes:
|
11
5
|
# _tesim - for strings or text fields
|
12
6
|
# _dtsim - for dates
|
13
7
|
# _isim - for integers
|
8
|
+
# Note that searchable fields are also stored for backwards compatibilitiy
|
9
|
+
# TODO: make a searchable and stored field type ("searchable_and_displayable" like "search and destroy"? "displearchable" ?)
|
10
|
+
# and then make searchable not stored.
|
14
11
|
def self.searchable
|
15
12
|
@searchable ||= Descriptor.new(searchable_field_definition, converter: searchable_converter, requires_type: true)
|
16
13
|
end
|
@@ -19,25 +16,30 @@ module Solrizer
|
|
19
16
|
# produces suffixes:
|
20
17
|
# _dtsi - for dates
|
21
18
|
def self.dateable
|
22
|
-
@dateable ||= Descriptor.new(:date, :stored, :indexed, converter: dateable_converter)
|
19
|
+
@dateable ||= Descriptor.new(:date, :stored, :indexed, :multivalued, converter: dateable_converter)
|
23
20
|
end
|
24
21
|
|
25
|
-
# Produces
|
22
|
+
# Produces _sim suffix
|
23
|
+
def self.facetable
|
24
|
+
@facetable ||= Descriptor.new(:string, :indexed, :multivalued)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Produces _ssim suffix; should probably be deprecated
|
26
28
|
def self.symbol
|
27
29
|
@symbol ||= Descriptor.new(:string, :stored, :indexed, :multivalued)
|
28
30
|
end
|
29
31
|
|
30
|
-
# Produces
|
32
|
+
# Produces _si suffix
|
31
33
|
def self.sortable
|
32
|
-
@sortable ||= Descriptor.new(:string, :indexed
|
34
|
+
@sortable ||= Descriptor.new(:string, :indexed)
|
33
35
|
end
|
34
36
|
|
35
|
-
# Produces
|
37
|
+
# Produces _ssm suffix
|
36
38
|
def self.displayable
|
37
39
|
@displayable ||= Descriptor.new(:string, :stored, :multivalued)
|
38
40
|
end
|
39
41
|
|
40
|
-
# Produces
|
42
|
+
# Produces _tim suffix (used to be _unstem)
|
41
43
|
def self.unstemmed_searchable
|
42
44
|
@unstemmed_searchable ||= Descriptor.new(:text, :indexed, :multivalued)
|
43
45
|
end
|
@@ -47,11 +49,11 @@ module Solrizer
|
|
47
49
|
end
|
48
50
|
protected
|
49
51
|
|
52
|
+
# note that searchable fields are also stored. Probably should change that at some point
|
50
53
|
def self.searchable_field_definition
|
51
54
|
lambda do |type|
|
52
55
|
type = :text_en if [:string, :text].include?(type) # for backwards compatibility with old solr schema
|
53
|
-
vals = [type, :indexed, :stored]
|
54
|
-
vals << :multivalued unless [:date, :time].include? type
|
56
|
+
vals = [type, :indexed, :stored, :multivalued]
|
55
57
|
vals
|
56
58
|
end
|
57
59
|
end
|
@@ -77,7 +79,6 @@ module Solrizer
|
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
80
|
-
|
81
82
|
def self.iso8601_date(value)
|
82
83
|
begin
|
83
84
|
if value.is_a?(Date) || value.is_a?(Time)
|
data/lib/solrizer/descriptor.rb
CHANGED
@@ -106,10 +106,11 @@ module Solrizer
|
|
106
106
|
self.id_field = self.class.id_field
|
107
107
|
end
|
108
108
|
|
109
|
-
# Given a
|
110
|
-
|
109
|
+
# Given a field name, inndex_type, etc., returns the corresponding Solr name.
|
111
110
|
# TODO field type is the input format, maybe we could just detect that?
|
112
|
-
# @param
|
111
|
+
# @param [String] field_name the ruby (term) name which will get a suffix appended to become a Solr field name
|
112
|
+
# @param opts - index_type is only needed if the FieldDescriptor requires it (e.g. :searcahble)
|
113
|
+
# @return [String] name of the solr field, based on the params
|
113
114
|
def solr_name(field_name, *opts)
|
114
115
|
index_type, args = if opts.first.kind_of? Hash
|
115
116
|
[:searchable, opts.first]
|
@@ -133,7 +134,7 @@ module Solrizer
|
|
133
134
|
end
|
134
135
|
end
|
135
136
|
|
136
|
-
#
|
137
|
+
# @param index_type is a FieldDescriptor or a symbol that points to a method that returns a field descriptor
|
137
138
|
def indexer(index_type)
|
138
139
|
index_type = case index_type
|
139
140
|
when Symbol
|
data/lib/solrizer/version.rb
CHANGED
data/spec/units/common_spec.rb
CHANGED
@@ -13,12 +13,12 @@ describe Solrizer::Common do
|
|
13
13
|
it "should handle many field types" do
|
14
14
|
solr_doc = {}
|
15
15
|
Foo.create_and_insert_terms('my_name', 'value', [:displayable, :searchable, :sortable], solr_doc)
|
16
|
-
solr_doc.should == {'my_name_ssm' => ['value'], '
|
16
|
+
solr_doc.should == {'my_name_ssm' => ['value'], 'my_name_si' => ['value'], 'my_name_tesim' => ['value']}
|
17
17
|
end
|
18
18
|
it "should handle dates that are searchable" do
|
19
19
|
solr_doc = {}
|
20
20
|
Foo.create_and_insert_terms('my_name', Date.parse('2013-01-10'), [:searchable], solr_doc)
|
21
|
-
solr_doc.should == {'
|
21
|
+
solr_doc.should == {'my_name_dtsim' => ['2013-01-10T00:00:00Z']}
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should handle dates that are displayable" do
|
@@ -30,6 +30,6 @@ describe Solrizer::Common do
|
|
30
30
|
it "should handle dates that are sortable" do
|
31
31
|
solr_doc = {}
|
32
32
|
Foo.create_and_insert_terms('my_name', Date.parse('2013-01-10'), [:sortable], solr_doc)
|
33
|
-
solr_doc.should == {'
|
33
|
+
solr_doc.should == {'my_name_si' => ['2013-01-10']}
|
34
34
|
end
|
35
35
|
end
|
@@ -151,7 +151,7 @@ describe Solrizer::FieldMapper do
|
|
151
151
|
end
|
152
152
|
|
153
153
|
describe '.solr_name' do
|
154
|
-
it "should map based on
|
154
|
+
it "should map based on passed descriptors" do
|
155
155
|
@mapper.solr_name('bar', :edible).should == 'bar_food'
|
156
156
|
@mapper.solr_name('bar', :laughable, type: :string).should == 'bar_haha'
|
157
157
|
end
|
@@ -190,7 +190,7 @@ describe Solrizer::FieldMapper do
|
|
190
190
|
end
|
191
191
|
|
192
192
|
describe '.solr_names_and_values' do
|
193
|
-
it "should map values based on
|
193
|
+
it "should map values based on passed descriptors" do
|
194
194
|
@mapper.solr_names_and_values('foo', 'bar', [:searchable, :laughable, :edible]).should == {
|
195
195
|
'foo_s' => ['bar'],
|
196
196
|
'foo_food' => ['bar'],
|
@@ -252,18 +252,18 @@ describe Solrizer::FieldMapper do
|
|
252
252
|
end
|
253
253
|
|
254
254
|
it "should support full ISO 8601 dates" do
|
255
|
-
@mapper.solr_names_and_values('foo', "2012-11-06", [:dateable]).should == { '
|
256
|
-
@mapper.solr_names_and_values('foo', "November 6th, 2012", [:dateable]).should == { '
|
257
|
-
@mapper.solr_names_and_values('foo', "6 Nov. 2012", [:dateable]).should == { '
|
258
|
-
@mapper.solr_names_and_values('foo', '', [:dateable]).should == { '
|
255
|
+
@mapper.solr_names_and_values('foo', "2012-11-06", [:dateable]).should == { 'foo_dtsim' =>["2012-11-06T00:00:00Z"] }
|
256
|
+
@mapper.solr_names_and_values('foo', "November 6th, 2012", [:dateable]).should == { 'foo_dtsim' =>["2012-11-06T00:00:00Z"] }
|
257
|
+
@mapper.solr_names_and_values('foo', "6 Nov. 2012", [:dateable]).should == { 'foo_dtsim' =>["2012-11-06T00:00:00Z"] }
|
258
|
+
@mapper.solr_names_and_values('foo', '', [:dateable]).should == { 'foo_dtsim' => [] }
|
259
259
|
end
|
260
260
|
|
261
|
-
it "should support displayable, facetable, sortable, unstemmed" do
|
261
|
+
it "should support searchable, displayable, facetable, sortable, unstemmed" do
|
262
262
|
@mapper.solr_names_and_values('foo', 'bar', [:searchable, :displayable, :facetable, :sortable, :unstemmed_searchable]).should == {
|
263
263
|
"foo_tesim" => ["bar"], #searchable
|
264
|
-
"foo_sim" => ["bar"], #facetable
|
265
264
|
"foo_ssm" => ["bar"], #displayable
|
266
|
-
"
|
265
|
+
"foo_sim" => ["bar"], #facetable
|
266
|
+
"foo_si" => ["bar"], #sortable
|
267
267
|
"foo_tim" => ["bar"] #unstemmed_searchable
|
268
268
|
}
|
269
269
|
end
|
data/spec/units/solrizer_spec.rb
CHANGED
@@ -11,40 +11,48 @@ describe Solrizer do
|
|
11
11
|
end
|
12
12
|
it "should insert a field with multiple indexers" do
|
13
13
|
Solrizer.insert_field(doc, 'foo', 'A name', :sortable, :facetable)
|
14
|
-
doc.should == {'
|
14
|
+
doc.should == {'foo_si' => ['A name'], 'foo_sim' => ['A name']}
|
15
15
|
end
|
16
16
|
it "should insert Dates" do
|
17
17
|
Solrizer.insert_field(doc, 'foo', Date.parse('2013-01-13'))
|
18
|
-
doc.should == {'
|
18
|
+
doc.should == {'foo_dtsim' => ["2013-01-13T00:00:00Z"]}
|
19
19
|
end
|
20
20
|
it "should insert Times" do
|
21
21
|
Solrizer.insert_field(doc, 'foo', Time.parse('2013-01-13T22:45:56+06:00'))
|
22
|
-
doc.should == {'
|
22
|
+
doc.should == {'foo_dtsim' => ["2013-01-13T16:45:56Z"]}
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should insert multiple values" do
|
26
26
|
Solrizer.insert_field(doc, 'foo', ['A name', 'B name'], :sortable, :facetable)
|
27
|
-
|
27
|
+
# NOTE: is this desired behavior for non-multivalued fields, like :sortable ?
|
28
|
+
doc.should == {'foo_si' => ['A name', 'B name'], 'foo_sim' => ['A name', 'B name']}
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
32
|
describe "on a document with values" do
|
32
|
-
before{ @doc = {'
|
33
|
+
before{ @doc = {'foo_si' => ['A name'], 'foo_sim' => ['A name']}}
|
33
34
|
|
34
35
|
it "should not overwrite values that exist before" do
|
35
36
|
Solrizer.insert_field(@doc, 'foo', 'B name', :sortable, :facetable)
|
36
|
-
@doc.should == {'
|
37
|
+
@doc.should == {'foo_si' => ['A name', 'B name'], 'foo_sim' => ['A name', 'B name']}
|
37
38
|
end
|
38
39
|
end
|
39
40
|
end
|
40
41
|
describe ".set_field" do
|
41
42
|
describe "on a document with values" do
|
42
|
-
before{ @doc = {'
|
43
|
+
before{ @doc = {'foo_si' => ['A name'], 'foo_sim' => ['A name']}}
|
43
44
|
|
44
45
|
it "should overwrite values that exist before" do
|
45
46
|
Solrizer.set_field(@doc, 'foo', 'B name', :sortable, :facetable)
|
46
|
-
@doc.should == {'
|
47
|
+
@doc.should == {'foo_si' => ['B name'], 'foo_sim' => ['B name']}
|
47
48
|
end
|
48
49
|
end
|
49
50
|
end
|
51
|
+
|
52
|
+
describe ".solr_name" do
|
53
|
+
it "should delegate to default_field_mapper" do
|
54
|
+
Solrizer.solr_name('foo', type: :string).should == "foo_tesim"
|
55
|
+
Solrizer.solr_name('foo', :sortable).should == "foo_ssi"
|
56
|
+
end
|
57
|
+
end
|
50
58
|
end
|
@@ -46,7 +46,7 @@ describe Solrizer::XML::TerminologyBasedSolrizer do
|
|
46
46
|
solr_doc["topic_tag_tesim"].sort.should == ["CONTROLLED TERM", "TOPIC 1", "TOPIC 2"]
|
47
47
|
|
48
48
|
# These are a holdover from an old verison of OM
|
49
|
-
solr_doc['
|
49
|
+
solr_doc['journal_0_issue_0_publication_date_dtsim'].should == ["2007-02-01T00:00:00Z"]
|
50
50
|
|
51
51
|
|
52
52
|
end
|
@@ -71,7 +71,7 @@ describe Solrizer::XML::TerminologyBasedSolrizer do
|
|
71
71
|
expected_names = ["DR.", "FAMILY NAME", "GIVEN NAMES"]
|
72
72
|
%w(_tesim _sim).each do |suffix|
|
73
73
|
actual_names = fake_solr_doc["name_0_namePart#{suffix}"].sort
|
74
|
-
|
74
|
+
actual_names.should == expected_names
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
@@ -79,14 +79,14 @@ describe Solrizer::XML::TerminologyBasedSolrizer do
|
|
79
79
|
unless RUBY_VERSION.match("1.8.7")
|
80
80
|
solr_doc = Hash.new
|
81
81
|
result = @mods_article.solrize_term(Samples::ModsArticle.terminology.retrieve_term(:pub_date), solr_doc)
|
82
|
-
solr_doc["
|
82
|
+
solr_doc["pub_date_dtsim"].should == ["2007-02-01T00:00:00Z"]
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
86
|
it "should add fields based on type using ref" do
|
87
87
|
solr_doc = Hash.new
|
88
88
|
result = @mods_article.solrize_term(Samples::ModsArticle.terminology.retrieve_term(:issue_date), solr_doc)
|
89
|
-
solr_doc["
|
89
|
+
solr_doc["issue_date_dtsim"].should == ["2007-02-15T00:00:00Z"]
|
90
90
|
end
|
91
91
|
|
92
92
|
it "shouldn't index terms where index_as is an empty array" do
|
@@ -98,7 +98,7 @@ describe Solrizer::XML::TerminologyBasedSolrizer do
|
|
98
98
|
fake_solr_doc["name_0_namePart_tesim"].should be_nil
|
99
99
|
end
|
100
100
|
|
101
|
-
it "
|
101
|
+
it "should index terms where index_as is searchable" do
|
102
102
|
fake_solr_doc = {}
|
103
103
|
term = Samples::ModsArticle.terminology.retrieve_term(:name)
|
104
104
|
term.children[:namePart].index_as = [:searchable]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solrizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.pre5
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,14 +9,14 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: 1.5.0
|
38
38
|
type: :runtime
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 1.5.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
@@ -48,7 +48,7 @@ dependencies:
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
type: :runtime
|
@@ -56,7 +56,7 @@ dependencies:
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 0.4.7
|
70
70
|
type: :runtime
|
@@ -72,7 +72,7 @@ dependencies:
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- - ~>
|
75
|
+
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 0.4.7
|
78
78
|
- !ruby/object:Gem::Dependency
|
@@ -80,7 +80,7 @@ dependencies:
|
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '0'
|
86
86
|
type: :runtime
|
@@ -88,7 +88,7 @@ dependencies:
|
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
|
-
- -
|
91
|
+
- - ">="
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
94
|
- !ruby/object:Gem::Dependency
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
|
-
- -
|
99
|
+
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
type: :runtime
|
@@ -104,7 +104,7 @@ dependencies:
|
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
- !ruby/object:Gem::Dependency
|
@@ -112,7 +112,7 @@ dependencies:
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :runtime
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
@@ -128,7 +128,7 @@ dependencies:
|
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - ">="
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0'
|
134
134
|
type: :development
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
none: false
|
138
138
|
requirements:
|
139
|
-
- -
|
139
|
+
- - ">="
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
- !ruby/object:Gem::Dependency
|
@@ -144,7 +144,7 @@ dependencies:
|
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
none: false
|
146
146
|
requirements:
|
147
|
-
- -
|
147
|
+
- - ">="
|
148
148
|
- !ruby/object:Gem::Version
|
149
149
|
version: '0'
|
150
150
|
type: :development
|
@@ -152,7 +152,7 @@ dependencies:
|
|
152
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
153
|
none: false
|
154
154
|
requirements:
|
155
|
-
- -
|
155
|
+
- - ">="
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
158
|
- !ruby/object:Gem::Dependency
|
@@ -160,7 +160,7 @@ dependencies:
|
|
160
160
|
requirement: !ruby/object:Gem::Requirement
|
161
161
|
none: false
|
162
162
|
requirements:
|
163
|
-
- -
|
163
|
+
- - ">="
|
164
164
|
- !ruby/object:Gem::Version
|
165
165
|
version: '0'
|
166
166
|
type: :development
|
@@ -168,7 +168,7 @@ dependencies:
|
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
169
|
none: false
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
- !ruby/object:Gem::Dependency
|
@@ -176,7 +176,7 @@ dependencies:
|
|
176
176
|
requirement: !ruby/object:Gem::Requirement
|
177
177
|
none: false
|
178
178
|
requirements:
|
179
|
-
- -
|
179
|
+
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
181
|
version: '0'
|
182
182
|
type: :development
|
@@ -184,7 +184,7 @@ dependencies:
|
|
184
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
185
|
none: false
|
186
186
|
requirements:
|
187
|
-
- -
|
187
|
+
- - ">="
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0'
|
190
190
|
description: Use solrizer to populate solr indexes. You can run solrizer from within
|
@@ -198,7 +198,7 @@ extra_rdoc_files:
|
|
198
198
|
- LICENSE
|
199
199
|
- README.textile
|
200
200
|
files:
|
201
|
-
- .gitignore
|
201
|
+
- ".gitignore"
|
202
202
|
- Gemfile
|
203
203
|
- History.txt
|
204
204
|
- LICENSE
|
@@ -248,18 +248,21 @@ require_paths:
|
|
248
248
|
required_ruby_version: !ruby/object:Gem::Requirement
|
249
249
|
none: false
|
250
250
|
requirements:
|
251
|
-
- -
|
251
|
+
- - ">="
|
252
252
|
- !ruby/object:Gem::Version
|
253
253
|
version: '0'
|
254
|
+
segments:
|
255
|
+
- 0
|
256
|
+
hash: 101922245863282176
|
254
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
258
|
none: false
|
256
259
|
requirements:
|
257
|
-
- -
|
260
|
+
- - ">"
|
258
261
|
- !ruby/object:Gem::Version
|
259
262
|
version: 1.3.1
|
260
263
|
requirements: []
|
261
264
|
rubyforge_project:
|
262
|
-
rubygems_version: 1.8.
|
265
|
+
rubygems_version: 1.8.25
|
263
266
|
signing_key:
|
264
267
|
specification_version: 3
|
265
268
|
summary: A utility for building solr indexes, usually from Fedora repository content
|