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.
- checksums.yaml +4 -4
- data/.rubocop.yml +7 -7
- data/.rubocop_todo.yml +10 -100
- data/.travis.yml +21 -0
- data/CODE_OF_CONDUCT.md +36 -0
- data/CONTRIBUTING.md +23 -21
- data/Gemfile +1 -2
- data/History.txt +29 -29
- data/LICENSE +16 -14
- data/README.md +40 -29
- data/SUPPORT.md +5 -0
- data/active-fedora.gemspec +7 -7
- data/lib/active_fedora.rb +1 -1
- data/lib/active_fedora/aggregation/list_source.rb +3 -2
- data/lib/active_fedora/associations/builder/collection_association.rb +1 -0
- data/lib/active_fedora/associations/collection_association.rb +3 -0
- data/lib/active_fedora/associations/collection_proxy.rb +2 -0
- data/lib/active_fedora/associations/directly_contains_one_association.rb +1 -0
- data/lib/active_fedora/associations/indirectly_contains_association.rb +2 -0
- data/lib/active_fedora/associations/singular_association.rb +1 -0
- data/lib/active_fedora/attribute_methods.rb +1 -1
- data/lib/active_fedora/attribute_methods/read.rb +1 -1
- data/lib/active_fedora/attribute_methods/write.rb +1 -1
- data/lib/active_fedora/attributes.rb +1 -1
- data/lib/active_fedora/attributes/property_builder.rb +1 -0
- data/lib/active_fedora/callbacks.rb +7 -2
- data/lib/active_fedora/fedora.rb +8 -0
- data/lib/active_fedora/file.rb +7 -5
- data/lib/active_fedora/indexing/descendant_fetcher.rb +1 -1
- data/lib/active_fedora/indexing/field_mapper.rb +2 -0
- data/lib/active_fedora/indexing/suffix.rb +3 -1
- data/lib/active_fedora/inheritable_accessors.rb +1 -0
- data/lib/active_fedora/loadable_from_json.rb +1 -0
- data/lib/active_fedora/nested_attributes.rb +1 -0
- data/lib/active_fedora/persistence.rb +14 -1
- data/lib/active_fedora/persistence/null_identifier_service.rb +11 -0
- data/lib/active_fedora/reflection.rb +1 -1
- data/lib/active_fedora/relation.rb +14 -0
- data/lib/active_fedora/relation/delegation.rb +2 -1
- data/lib/active_fedora/relation/finder_methods.rb +1 -0
- data/lib/active_fedora/relation/merger.rb +1 -0
- data/lib/active_fedora/validations.rb +7 -0
- data/lib/active_fedora/version.rb +1 -1
- data/lib/active_fedora/with_metadata.rb +1 -0
- data/lib/active_fedora/with_metadata/metadata_node.rb +2 -1
- data/lib/generators/active_fedora/config/solr/templates/solr/config/schema.xml +64 -51
- data/lib/generators/active_fedora/config/solr/templates/solr/config/solrconfig.xml +4 -1
- data/lib/generators/active_fedora/model/templates/datastream.rb.erb +1 -1
- data/spec/integration/file_spec.rb +1 -1
- data/spec/integration/relation_spec.rb +43 -0
- data/spec/spec_helper.rb +11 -9
- data/spec/support/an_active_model.rb +4 -0
- data/spec/unit/callback_spec.rb +8 -1
- data/spec/unit/file_spec.rb +0 -17
- data/spec/unit/validations_spec.rb +18 -0
- metadata +28 -25
- 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
|
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
|
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 #
|
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, :
|
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
|
@@ -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
|
@@ -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
|
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.
|
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.
|
67
|
-
<fieldType name="float" class="solr.
|
68
|
-
<fieldType name="long" class="solr.
|
69
|
-
<fieldType name="double" class="solr.
|
70
|
-
|
71
|
-
<!--
|
72
|
-
<fieldType name="tint" class="solr.
|
73
|
-
<fieldType name="tfloat" class="solr.
|
74
|
-
<fieldType name="tlong" class="solr.
|
75
|
-
<fieldType name="tdouble" class="solr.
|
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.
|
81
|
-
<!-- A
|
82
|
-
<fieldType name="tdate" class="solr.
|
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
|
-
<!--
|
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
|
-
<!--
|
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
|
-
<!--
|
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
|
-
<!--
|
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
|
-
<!--
|
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>
|