active-fedora 12.0.3 → 12.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -7
  3. data/.rubocop_todo.yml +10 -100
  4. data/.travis.yml +21 -0
  5. data/CODE_OF_CONDUCT.md +36 -0
  6. data/CONTRIBUTING.md +23 -21
  7. data/Gemfile +1 -2
  8. data/History.txt +29 -29
  9. data/LICENSE +16 -14
  10. data/README.md +40 -29
  11. data/SUPPORT.md +5 -0
  12. data/active-fedora.gemspec +7 -7
  13. data/lib/active_fedora.rb +1 -1
  14. data/lib/active_fedora/aggregation/list_source.rb +3 -2
  15. data/lib/active_fedora/associations/builder/collection_association.rb +1 -0
  16. data/lib/active_fedora/associations/collection_association.rb +3 -0
  17. data/lib/active_fedora/associations/collection_proxy.rb +2 -0
  18. data/lib/active_fedora/associations/directly_contains_one_association.rb +1 -0
  19. data/lib/active_fedora/associations/indirectly_contains_association.rb +2 -0
  20. data/lib/active_fedora/associations/singular_association.rb +1 -0
  21. data/lib/active_fedora/attribute_methods.rb +1 -1
  22. data/lib/active_fedora/attribute_methods/read.rb +1 -1
  23. data/lib/active_fedora/attribute_methods/write.rb +1 -1
  24. data/lib/active_fedora/attributes.rb +1 -1
  25. data/lib/active_fedora/attributes/property_builder.rb +1 -0
  26. data/lib/active_fedora/callbacks.rb +7 -2
  27. data/lib/active_fedora/fedora.rb +8 -0
  28. data/lib/active_fedora/file.rb +7 -5
  29. data/lib/active_fedora/indexing/descendant_fetcher.rb +1 -1
  30. data/lib/active_fedora/indexing/field_mapper.rb +2 -0
  31. data/lib/active_fedora/indexing/suffix.rb +3 -1
  32. data/lib/active_fedora/inheritable_accessors.rb +1 -0
  33. data/lib/active_fedora/loadable_from_json.rb +1 -0
  34. data/lib/active_fedora/nested_attributes.rb +1 -0
  35. data/lib/active_fedora/persistence.rb +14 -1
  36. data/lib/active_fedora/persistence/null_identifier_service.rb +11 -0
  37. data/lib/active_fedora/reflection.rb +1 -1
  38. data/lib/active_fedora/relation.rb +14 -0
  39. data/lib/active_fedora/relation/delegation.rb +2 -1
  40. data/lib/active_fedora/relation/finder_methods.rb +1 -0
  41. data/lib/active_fedora/relation/merger.rb +1 -0
  42. data/lib/active_fedora/validations.rb +7 -0
  43. data/lib/active_fedora/version.rb +1 -1
  44. data/lib/active_fedora/with_metadata.rb +1 -0
  45. data/lib/active_fedora/with_metadata/metadata_node.rb +2 -1
  46. data/lib/generators/active_fedora/config/solr/templates/solr/config/schema.xml +64 -51
  47. data/lib/generators/active_fedora/config/solr/templates/solr/config/solrconfig.xml +4 -1
  48. data/lib/generators/active_fedora/model/templates/datastream.rb.erb +1 -1
  49. data/spec/integration/file_spec.rb +1 -1
  50. data/spec/integration/relation_spec.rb +43 -0
  51. data/spec/spec_helper.rb +11 -9
  52. data/spec/support/an_active_model.rb +4 -0
  53. data/spec/unit/callback_spec.rb +8 -1
  54. data/spec/unit/file_spec.rb +0 -17
  55. data/spec/unit/validations_spec.rb +18 -0
  56. metadata +28 -25
  57. data/.circleci/config.yml +0 -47
@@ -45,12 +45,14 @@ module ActiveFedora
45
45
  end
46
46
 
47
47
  def self.config
48
+ # TODO: `:symbol' usage ought to be deprecated
49
+ # See https://github.com/samvera/active_fedora/issues/1334
48
50
  @config ||= OpenStruct.new fields: [:type, :stored, :indexed, :multivalued],
49
51
  suffix_delimiter: '_',
50
52
  type_suffix: (lambda do |fields|
51
53
  type = fields.first
52
54
  case type
53
- when :string, :symbol # TODO: `:symbol' usage ought to be deprecated
55
+ when :string, :symbol
54
56
  's'
55
57
  when :text
56
58
  't'
@@ -1,5 +1,6 @@
1
1
  # Similar to ActiveSupport.class_attribute but with a setter that doesn't use the #{name}= syntax
2
2
  # This preserves backward compatibility with the API in ActiveTriples
3
+ require "active_support/core_ext/module/remove_method"
3
4
 
4
5
  module ActiveFedora
5
6
  module InheritableAccessors
@@ -131,6 +131,7 @@ module ActiveFedora
131
131
  @resource = SolrBackedResource.new(self.class)
132
132
  self.attributes = adapt_attributes(attrs)
133
133
  # TODO: Should we clear the change tracking, or make this object Read-only?
134
+ # See https://github.com/samvera/active_fedora/issues/1342
134
135
 
135
136
  yield self if block_given?
136
137
 
@@ -64,6 +64,7 @@ module ActiveFedora
64
64
  reflection.autosave = true
65
65
  define_autosave_association_callbacks(reflection)
66
66
  ## TODO this ought to work, but doesn't seem to do the class inheritance right
67
+ # See https://github.com/samvera/active_fedora/issues/1343
67
68
 
68
69
  nested_attributes_options = self.nested_attributes_options.dup
69
70
  nested_attributes_options[association_name.to_sym] = options
@@ -2,6 +2,13 @@ module ActiveFedora
2
2
  # = Active Fedora Persistence
3
3
  module Persistence
4
4
  extend ActiveSupport::Concern
5
+ extend ActiveSupport::Autoload
6
+ autoload :NullIdentifierService
7
+
8
+ included do
9
+ class_attribute :identifier_service_class
10
+ self.identifier_service_class = NullIdentifierService
11
+ end
5
12
 
6
13
  def new_record?
7
14
  return true if @ldp_source.subject.nil?
@@ -209,7 +216,13 @@ module ActiveFedora
209
216
  end
210
217
 
211
218
  # Override to tie in an ID minting service
212
- def assign_id; end
219
+ def assign_id
220
+ identifier_service.mint
221
+ end
222
+
223
+ def identifier_service
224
+ @identifier_service ||= identifier_service_class.new
225
+ end
213
226
 
214
227
  # This is only used when creating a new record. If the object doesn't have an id
215
228
  # and assign_id can mint an id for the object, then assign it to the resource.
@@ -0,0 +1,11 @@
1
+ module ActiveFedora
2
+ module Persistence
3
+ # An identifier service that doesn't mint IDs, so that the autocreated
4
+ # identifiers from Fedora will be used.
5
+ class NullIdentifierService
6
+ # Effectively a no-op
7
+ # @return [NilClass]
8
+ def mint; end
9
+ end
10
+ end
11
+ end
@@ -314,7 +314,7 @@ module ActiveFedora
314
314
  def collect_join_chain
315
315
  [self]
316
316
  end
317
- alias chain collect_join_chain # todo
317
+ alias chain collect_join_chain # TODO Remove alias, See https://github.com/samvera/active_fedora/issues/1347
318
318
 
319
319
  def has_inverse?
320
320
  inverse_name
@@ -144,6 +144,20 @@ module ActiveFedora
144
144
  @scope_for_create ||= where_values_hash.merge(create_with_value)
145
145
  end
146
146
 
147
+ def each
148
+ if loaded?
149
+ @records.each { |item| yield item } if block_given?
150
+ @records.to_enum
151
+ else
152
+ find_each(where_values) { |item| yield item } if block_given?
153
+ enum_for(:find_each, where_values)
154
+ end
155
+ end
156
+
157
+ def empty?
158
+ !any?
159
+ end
160
+
147
161
  private
148
162
 
149
163
  VALID_FIND_OPTIONS = [:order, :limit, :start, :conditions, :cast].freeze
@@ -13,7 +13,8 @@ module ActiveFedora
13
13
  :keep_if, :pop, :shift, :delete_at, :select!
14
14
  ].to_set
15
15
 
16
- delegate :length, :collect, :map, :each, :all?, :include?, :to_ary, to: :to_a
16
+ delegate :length, :map, :to_ary, to: :to_a
17
+ delegate :any?, :all?, :collect, :include?, to: :each
17
18
 
18
19
  protected
19
20
 
@@ -262,6 +262,7 @@ module ActiveFedora
262
262
  def field_name_for(key)
263
263
  if @klass.delegated_attributes.key?(key)
264
264
  # TODO: Check to see if `key' is a possible solr field for this class, if it isn't try :searchable instead
265
+ # See https://github.com/samvera/active_fedora/issues/1344
265
266
  ActiveFedora.index_field_mapper.solr_name(key, :stored_searchable, type: :string)
266
267
  elsif key == :id
267
268
  ActiveFedora.id_field
@@ -14,6 +14,7 @@ module ActiveFedora
14
14
 
15
15
  def merge
16
16
  # TODO: merge order
17
+ # See https://github.com/samvera/active_fedora/issues/1329
17
18
  relation.where_values += other.where_values
18
19
  relation
19
20
  end
@@ -92,5 +92,12 @@ module ActiveFedora
92
92
  def perform_validations(options = {}) # :nodoc:
93
93
  options[:validate] == false || valid?(options[:context])
94
94
  end
95
+
96
+ private
97
+
98
+ # Overwrite run validations to include callbacks.
99
+ def run_validations!
100
+ _run_validation_callbacks { super }
101
+ end
95
102
  end
96
103
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "12.0.3".freeze
2
+ VERSION = "12.1.0".freeze
3
3
  end
@@ -20,6 +20,7 @@ module ActiveFedora
20
20
 
21
21
  def create_or_update(*)
22
22
  return unless super && !new_record?
23
+ # TODOs captured as https://github.com/samvera/active_fedora/issues/1331
23
24
  metadata_node.metadata_uri = described_by # TODO: only necessary if the URI was < > before
24
25
  metadata_node.save # TODO if changed?
25
26
  end
@@ -15,6 +15,7 @@ module ActiveFedora
15
15
  @file = file
16
16
  super(file.uri, ldp_source.graph)
17
17
  return unless self.class.type && !type.include?(self.class.type)
18
+ attributes_changed_by_setter[:type] = true if type.present?
18
19
  # Workaround for https://github.com/ActiveTriples/ActiveTriples/issues/123
19
20
  get_values(:type) << self.class.type
20
21
  end
@@ -54,7 +55,7 @@ module ActiveFedora
54
55
 
55
56
  def changed_attributes
56
57
  super.tap do |changed|
57
- changed['type'] = true if type.present? && new_record?
58
+ changed.merge('type' => true) if type.present? && new_record?
58
59
  end
59
60
  end
60
61
 
@@ -48,43 +48,47 @@
48
48
  <schema name="Hydra Demo Index" version="1.5">
49
49
  <!-- attribute "name" is the name of this schema and is only used for display purposes.
50
50
  Applications should change this to reflect the nature of the search collection.
51
- version="1.4" is Solr's version number for the schema syntax and semantics. It should
51
+ version="1.5" is Solr's version number for the schema syntax and semantics. It should
52
52
  not normally be changed by applications.
53
53
  1.0: multiValued attribute did not exist, all fields are multiValued by nature
54
54
  1.1: multiValued attribute introduced, false by default
55
55
  1.2: omitTermFreqAndPositions attribute introduced, true by default except for text fields.
56
56
  1.3: removed optional field compress feature
57
57
  1.4: default auto-phrase (QueryParser feature) to off
58
+ 1.5: omitNorms defaults to true for primitive field types (int, float, boolean, string...)
59
+ # TODO 1.6: useDocValuesAsStored defaults to true.
60
+ # See https://github.com/samvera/active_fedora/issues/1346
58
61
  -->
59
62
 
60
63
  <types>
61
64
  <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
62
- <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
65
+ <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
63
66
  <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
64
-
67
+
65
68
  <!-- Default numeric field types. -->
66
- <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
67
- <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
68
- <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
69
- <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
70
-
71
- <!-- trie numeric field types for faster range queries -->
72
- <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
73
- <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
74
- <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
75
- <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
76
-
69
+ <fieldType name="int" class="solr.IntPointField" docValues="true"/>
70
+ <fieldType name="float" class="solr.FloatPointField" docValues="true"/>
71
+ <fieldType name="long" class="solr.LongPointField" docValues="true"/>
72
+ <fieldType name="double" class="solr.DoublePointField" docValues="true"/>
73
+
74
+ <!-- PointField numeric field types for faster range queries -->
75
+ <fieldType name="tint" class="solr.IntPointField" docValues="true"/>
76
+ <fieldType name="tfloat" class="solr.FloatPointField" docValues="true"/>
77
+ <fieldType name="tlong" class="solr.LongPointField" docValues="true"/>
78
+ <fieldType name="tdouble" class="solr.DoublePointField" docValues="true"/>
79
+
77
80
  <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
78
81
  Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
79
82
  -->
80
- <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
81
- <!-- A Trie based date field for faster date range queries and date faceting. -->
82
- <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
83
-
84
-
83
+ <fieldType name="date" class="solr.DatePointField" docValues="true"/>
84
+ <!-- A PointField based date field for faster date range queries and date faceting. -->
85
+ <fieldType name="tdate" class="solr.DatePointField" docValues="true"/>
86
+ <!-- A DateRange based date field for truly faster date range queries. -->
87
+ <fieldType name="dateRange" class="solr.DateRangeField"/>
88
+
85
89
  <!-- This point type indexes the coordinates as separate fields (subFields)
86
90
  If subFieldType is defined, it references a type, and a dynamic field
87
- definition is created matching *___<typename>. Alternately, if
91
+ definition is created matching *___<typename>. Alternately, if
88
92
  subFieldSuffix is defined, that is used to create the subFields.
89
93
  Example: if subFieldType="double", then the coordinates would be
90
94
  indexed in fields myloc_0___double,myloc_1___double.
@@ -94,17 +98,17 @@
94
98
  users normally should not need to know about them.
95
99
  -->
96
100
  <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
97
-
101
+
98
102
  <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
99
103
  <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
100
-
104
+
101
105
  <!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
102
106
  For more information about this and other Spatial fields new to Solr 4, see:
103
107
  http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
104
108
  -->
105
109
  <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
106
110
  geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="degrees" />
107
-
111
+
108
112
  <fieldType name="text" class="solr.TextField" omitNorms="false">
109
113
  <analyzer>
110
114
  <tokenizer class="solr.ICUTokenizerFactory"/>
@@ -112,7 +116,7 @@
112
116
  <filter class="solr.TrimFilterFactory"/>
113
117
  </analyzer>
114
118
  </fieldType>
115
-
119
+
116
120
  <!-- A text field that only splits on whitespace for exact matching of words -->
117
121
  <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
118
122
  <analyzer>
@@ -120,7 +124,7 @@
120
124
  <filter class="solr.TrimFilterFactory"/>
121
125
  </analyzer>
122
126
  </fieldType>
123
-
127
+
124
128
  <!-- single token analyzed text, for sorting. Punctuation is significant. -->
125
129
  <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
126
130
  <analyzer>
@@ -129,7 +133,7 @@
129
133
  <filter class="solr.TrimFilterFactory" />
130
134
  </analyzer>
131
135
  </fieldtype>
132
-
136
+
133
137
  <!-- A text field with defaults appropriate for English -->
134
138
  <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
135
139
  <analyzer>
@@ -144,7 +148,7 @@
144
148
  <filter class="solr.TrimFilterFactory"/>
145
149
  </analyzer>
146
150
  </fieldType>
147
-
151
+
148
152
  <!-- queries for paths match documents at that path, or in descendent paths -->
149
153
  <fieldType name="descendent_path" class="solr.TextField">
150
154
  <analyzer type="index">
@@ -154,7 +158,7 @@
154
158
  <tokenizer class="solr.KeywordTokenizerFactory" />
155
159
  </analyzer>
156
160
  </fieldType>
157
-
161
+
158
162
  <!-- queries for paths match documents at that path, or in ancestor paths -->
159
163
  <fieldType name="ancestor_path" class="solr.TextField">
160
164
  <analyzer type="index">
@@ -179,12 +183,12 @@
179
183
  <fields>
180
184
  <!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
181
185
  or Solr won't start. _version_ and update log are required for SolrCloud
182
- -->
186
+ -->
183
187
  <field name="_version_" type="long" indexed="true" stored="true"/>
184
-
188
+
185
189
  <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
186
190
  <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
187
-
191
+
188
192
  <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
189
193
  <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
190
194
 
@@ -201,7 +205,7 @@
201
205
  <dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
202
206
  <dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
203
207
  <dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
204
-
208
+
205
209
  <!-- English text (_te...) -->
206
210
  <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
207
211
  <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
@@ -213,7 +217,7 @@
213
217
  <dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
214
218
  <dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
215
219
  <dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
216
-
220
+
217
221
  <!-- string (_s...) -->
218
222
  <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
219
223
  <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
@@ -222,7 +226,7 @@
222
226
  <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
223
227
  <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
224
228
  <dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
225
-
229
+
226
230
  <!-- integer (_i...) -->
227
231
  <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
228
232
  <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
@@ -230,15 +234,15 @@
230
234
  <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
231
235
  <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
232
236
  <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
233
-
234
- <!-- trie integer (_it...) (for faster range queries) -->
237
+
238
+ <!-- IntegerPointField (_it...) (for faster range queries) -->
235
239
  <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
236
240
  <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
237
241
  <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false"/>
238
242
  <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
239
243
  <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
240
244
  <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
241
-
245
+
242
246
  <!-- date (_dt...) -->
243
247
  <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
244
248
  Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
@@ -248,15 +252,24 @@
248
252
  <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
249
253
  <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
250
254
  <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
251
-
252
- <!-- trie date (_dtt...) (for faster range queries) -->
255
+
256
+ <!-- DatePointField (_dtt...) (for faster range queries) -->
253
257
  <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
254
258
  <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
255
259
  <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false"/>
256
260
  <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
257
261
  <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
258
262
  <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
259
-
263
+
264
+
265
+ <!-- date range (_dr...) (for faster AND better range queries) -->
266
+ <dynamicField name="*_dri" type="dateRange" stored="false" indexed="true" multiValued="false"/>
267
+ <dynamicField name="*_drim" type="dateRange" stored="false" indexed="true" multiValued="true"/>
268
+ <dynamicField name="*_drs" type="dateRange" stored="true" indexed="false" multiValued="false"/>
269
+ <dynamicField name="*_drsm" type="dateRange" stored="true" indexed="false" multiValued="true"/>
270
+ <dynamicField name="*_drsi" type="dateRange" stored="true" indexed="true" multiValued="false"/>
271
+ <dynamicField name="*_drsim" type="dateRange" stored="true" indexed="true" multiValued="true"/>
272
+
260
273
  <!-- long (_l...) -->
261
274
  <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
262
275
  <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
@@ -264,15 +277,15 @@
264
277
  <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
265
278
  <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
266
279
  <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
267
-
268
- <!-- trie long (_lt...) (for faster range queries) -->
280
+
281
+ <!-- LongPointField (_lt...) (for faster range queries) -->
269
282
  <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
270
283
  <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
271
284
  <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false"/>
272
285
  <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
273
286
  <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
274
287
  <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
275
-
288
+
276
289
  <!-- double (_db...) -->
277
290
  <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
278
291
  <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
@@ -280,15 +293,15 @@
280
293
  <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
281
294
  <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
282
295
  <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
283
-
284
- <!-- trie double (_dbt...) (for faster range queries) -->
296
+
297
+ <!-- DoublePointField (_dbt...) (for faster range queries) -->
285
298
  <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
286
299
  <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
287
300
  <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false"/>
288
301
  <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
289
302
  <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
290
303
  <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
291
-
304
+
292
305
  <!-- float (_f...) -->
293
306
  <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
294
307
  <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
@@ -296,20 +309,20 @@
296
309
  <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
297
310
  <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
298
311
  <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
299
-
300
- <!-- trie float (_ft...) (for faster range queries) -->
312
+
313
+ <!-- FloatPointField (_ft...) (for faster range queries) -->
301
314
  <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
302
315
  <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
303
316
  <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false"/>
304
317
  <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
305
318
  <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
306
319
  <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
307
-
320
+
308
321
  <!-- boolean (_b...) -->
309
322
  <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
310
323
  <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
311
324
  <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
312
-
325
+
313
326
  <!-- Type used to index the lat and lon components for the "location" FieldType -->
314
327
  <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
315
328
 
@@ -329,7 +342,7 @@
329
342
 
330
343
  </fields>
331
344
 
332
- <!-- Field to use to determine and enforce document uniqueness.
345
+ <!-- Field to use to determine and enforce document uniqueness.
333
346
  Unless this field is marked with required="false", it will be a required field
334
347
  -->
335
348
  <uniqueKey>id</uniqueKey>