active-fedora 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/History.txt +16 -0
- data/README.textile +12 -7
- data/active-fedora.gemspec +2 -2
- data/lib/active_fedora.rb +1 -0
- data/lib/active_fedora/associations/association_collection.rb +1 -1
- data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +12 -3
- data/lib/active_fedora/associations/has_many_association.rb +4 -0
- data/lib/active_fedora/attributes.rb +6 -0
- data/lib/active_fedora/auditable.rb +9 -0
- data/lib/active_fedora/base.rb +2 -0
- data/lib/active_fedora/delegating.rb +5 -3
- data/lib/active_fedora/indexing.rb +1 -1
- data/lib/active_fedora/nokogiri_datastream.rb +1 -2
- data/lib/active_fedora/querying.rb +1 -0
- data/lib/active_fedora/version.rb +1 -1
- data/lib/generators/active_fedora/config/solr/solr_generator.rb +1 -0
- data/lib/generators/active_fedora/config/solr/templates/jetty.yml +5 -0
- data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/schema.xml +1 -161
- data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/solrconfig.xml +16 -7
- data/lib/tasks/active_fedora_dev.rake +1 -1
- data/spec/fixtures/auditable.foxml.xml +110 -0
- data/spec/integration/base_spec.rb +7 -1
- data/spec/unit/auditable_spec.rb +31 -0
- data/spec/unit/base_delegate_spec.rb +74 -38
- data/spec/unit/base_spec.rb +6 -1
- data/spec/unit/has_and_belongs_to_many_collection_spec.rb +59 -0
- data/spec/unit/has_many_collection_spec.rb +26 -0
- metadata +96 -45
- checksums.yaml +0 -7
- data/solr/conf/schema.xml +0 -432
- data/solr/conf/solrconfig.xml +0 -158
data/.gitignore
CHANGED
data/History.txt
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
6.1.0
|
2
|
+
Give a list of classes that decend from ActiveFedora::Base
|
3
|
+
ActiveFedora::Base.exists?(nil) now returns false. Fixes #56
|
4
|
+
Removed extraneous solr configs.
|
5
|
+
Deprecated get_values_from_datastream. Fixes #52
|
6
|
+
Added ActiveFedora::Base.decendants
|
7
|
+
Added some sensible defaults to the solrconfig. Removed comments about old fields.
|
8
|
+
active_fedora_model solr field corrected to be single-valued.
|
9
|
+
Fixed fields for solrconfig permissions.
|
10
|
+
Deprecated Attributes#update_datastream_attributes.
|
11
|
+
Delegate registry works with descendants of ActiveFedora::Base, not just direct subclasses. Fixes #59
|
12
|
+
New ActiveFedora::Auditable mixin - provides access to Fedora audit trail.
|
13
|
+
Fixed has and belongs to many, so it calls remove_relationship on the right object.
|
14
|
+
Added jetty.yml to solr generator to overwrite the Blacklight jetty.yml.
|
15
|
+
Upgrade to om 2.1.0.
|
16
|
+
|
1
17
|
6.0.0
|
2
18
|
New solr schema with descriptive field suffixes
|
3
19
|
Added support for RDF lists
|
data/README.textile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
!https://travis-ci.org/projecthydra/active_fedora.png?branch=master!:https://travis-ci.org/projecthydra/active_fedora
|
2
2
|
|
3
3
|
h2. Description
|
4
4
|
|
@@ -27,22 +27,27 @@ You can generate a model inheriting from ActiveFedora::Base.
|
|
27
27
|
|
28
28
|
h2. Testing (this Gem)
|
29
29
|
|
30
|
-
In order to run the RSpec tests, you need to have a copy of the ActiveFedora source code, and then run bundle install in the source directory.
|
30
|
+
In order to run the RSpec tests, you need to have a copy of the ActiveFedora source code, and then run bundle install in the source directory. Testing requires hydra-jetty, which contains version for Fedora and Solr. Setting up and maintaining hydra-jetty for the purposes of testing this gem is all accomplished via
|
31
31
|
|
32
32
|
<pre>
|
33
33
|
git clone https://github.com/projecthydra/active_fedora.git
|
34
34
|
cd /wherever/active_fedora/is
|
35
35
|
bundle install
|
36
|
-
git submodule init
|
37
|
-
git submodule update
|
38
36
|
</pre>
|
39
37
|
|
40
|
-
h3.
|
38
|
+
h3. Using the continuous integration server
|
41
39
|
|
42
|
-
|
40
|
+
You can test ActiveFedora using the same process as our continuous integration server. To do that, unzip a copy
|
41
|
+
of hydra-jetty first. This includes copies of Fedora and Solr which are used during the testing process.
|
43
42
|
|
44
43
|
<pre>
|
45
|
-
rake
|
44
|
+
rake jetty:unzip
|
45
|
+
</pre>
|
46
|
+
|
47
|
+
Once hydra-jetty is unzipped, the ci rake task will spin up jetty, import the fixtures, and run the tests for you.
|
48
|
+
|
49
|
+
<pre>
|
50
|
+
rake active_fedora:ci
|
46
51
|
</pre>
|
47
52
|
|
48
53
|
h3. Testing Manually
|
data/active-fedora.gemspec
CHANGED
@@ -15,13 +15,13 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.required_ruby_version = '>= 1.9.3'
|
16
16
|
|
17
17
|
s.add_dependency('rsolr')
|
18
|
-
s.add_dependency('om', '~> 2.
|
18
|
+
s.add_dependency('om', '~> 2.1.0')
|
19
19
|
s.add_dependency('nom-xml', '>=0.5.1')
|
20
20
|
s.add_dependency("activeresource", '>= 3.0.0')
|
21
21
|
s.add_dependency("activesupport", '>= 3.0.0')
|
22
22
|
s.add_dependency("builder", '~> 3.0.0')
|
23
23
|
s.add_dependency("mediashelf-loggable")
|
24
|
-
s.add_dependency("rubydora", '~>1.
|
24
|
+
s.add_dependency("rubydora", '~>1.6')
|
25
25
|
s.add_dependency("rdf")
|
26
26
|
s.add_dependency("rdf-rdfxml", '~>1.0.0')
|
27
27
|
s.add_dependency("deprecation")
|
data/lib/active_fedora.rb
CHANGED
@@ -74,7 +74,7 @@ module ActiveFedora
|
|
74
74
|
flatten_deeper(records).each do |record|
|
75
75
|
raise_on_type_mismatch(record)
|
76
76
|
add_record_to_target_with_callbacks(record) do |r|
|
77
|
-
result &&= insert_record(record)
|
77
|
+
result &&= insert_record(record)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -31,16 +31,25 @@ module ActiveFedora
|
|
31
31
|
|
32
32
|
### TODO save relationship
|
33
33
|
@owner.add_relationship(@reflection.options[:property], record)
|
34
|
-
|
34
|
+
|
35
|
+
if @owner.new_record? and @reflection.options[:inverse_of]
|
36
|
+
logger.warn("has_and_belongs_to_many #{@reflection.inspect} is cowardly refusing to insert the inverse relationship into #{record}, because #{@owner} is not persisted yet.")
|
37
|
+
elsif @reflection.options[:inverse_of]
|
35
38
|
record.add_relationship(@reflection.options[:inverse_of], @owner)
|
39
|
+
record.save
|
36
40
|
end
|
37
|
-
|
41
|
+
|
38
42
|
return true
|
39
43
|
end
|
40
44
|
|
41
45
|
def delete_records(records)
|
42
46
|
records.each do |r|
|
43
|
-
|
47
|
+
@owner.remove_relationship(@reflection.options[:property], r)
|
48
|
+
|
49
|
+
if (@reflection.options[:inverse_of])
|
50
|
+
r.remove_relationship(@reflection.options[:inverse_of], @owner)
|
51
|
+
r.save
|
52
|
+
end
|
44
53
|
end
|
45
54
|
end
|
46
55
|
end
|
@@ -31,6 +31,10 @@ module ActiveFedora
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def insert_record(record, force = false, validate = true)
|
34
|
+
if @owner.new_record?
|
35
|
+
logger.warn("has_many #{@reflection.inspect} is cowardly refusing to insert a relationship into #{record}, because #{@owner} is not persisted yet.")
|
36
|
+
return true
|
37
|
+
end
|
34
38
|
set_belongs_to_association_for(record)
|
35
39
|
#force ? record.save! : record.save(:validate => validate)
|
36
40
|
record.save
|
@@ -2,6 +2,10 @@ module ActiveFedora
|
|
2
2
|
module Attributes
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
extend ActiveSupport::Autoload
|
5
|
+
extend Deprecation
|
6
|
+
self.deprecation_horizon = 'active-fedora 7.0.0'
|
7
|
+
|
8
|
+
|
5
9
|
autoload :Serializers
|
6
10
|
|
7
11
|
included do
|
@@ -60,6 +64,7 @@ module ActiveFedora
|
|
60
64
|
# }
|
61
65
|
# article.update_datastream_attributes( ds_values_hash )
|
62
66
|
def update_datastream_attributes(params={}, opts={})
|
67
|
+
Deprecation.warn(Attributes, 'update_datastream_attributes is deprecated. Consider using delegate_to instead.', caller)
|
63
68
|
result = params.dup
|
64
69
|
params.each_pair do |dsid, ds_params|
|
65
70
|
if datastreams.include?(dsid)
|
@@ -72,6 +77,7 @@ module ActiveFedora
|
|
72
77
|
end
|
73
78
|
|
74
79
|
def get_values_from_datastream(dsid,field_key,default=[])
|
80
|
+
Deprecation.warn(Attributes, 'get_values_from_datastream is deprecated. Consider using Datastream#get_values instead.', caller)
|
75
81
|
if datastreams.include?(dsid)
|
76
82
|
return datastreams[dsid].get_values(field_key,default)
|
77
83
|
else
|
data/lib/active_fedora/base.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
SOLR_DOCUMENT_ID = "id" unless (defined?(SOLR_DOCUMENT_ID) && !SOLR_DOCUMENT_ID.nil?)
|
2
2
|
ENABLE_SOLR_UPDATES = true unless defined?(ENABLE_SOLR_UPDATES)
|
3
3
|
require "digest"
|
4
|
+
require 'active_support/descendants_tracker'
|
4
5
|
|
5
6
|
module ActiveFedora
|
6
7
|
|
@@ -315,6 +316,7 @@ module ActiveFedora
|
|
315
316
|
Base.class_eval do
|
316
317
|
include Attributes
|
317
318
|
include ActiveFedora::Persistence
|
319
|
+
extend ActiveSupport::DescendantsTracker
|
318
320
|
extend Model
|
319
321
|
include Loggable
|
320
322
|
include Indexing
|
@@ -27,13 +27,15 @@ module ActiveFedora
|
|
27
27
|
|
28
28
|
module ClassMethods
|
29
29
|
def delegates
|
30
|
-
@
|
30
|
+
@local_delegates ||= {}
|
31
|
+
return @local_delegates unless superclass.respond_to?(:delegates) and value = superclass.delegates
|
32
|
+
@local_delegates = value.dup if @local_delegates.empty?
|
33
|
+
@local_delegates
|
31
34
|
end
|
32
35
|
|
33
36
|
def delegates= val
|
34
|
-
@
|
37
|
+
@local_delegates = val
|
35
38
|
end
|
36
|
-
|
37
39
|
# Provides a delegate class method to expose methods in metadata streams
|
38
40
|
# as member of the base object. Pass the target datastream via the
|
39
41
|
# <tt>:to</tt> argument. If you want to return a unique result, (e.g. string
|
@@ -14,7 +14,7 @@ module ActiveFedora
|
|
14
14
|
m_time = Time.parse(m_time) unless m_time.is_a?(Time)
|
15
15
|
Solrizer.set_field(solr_doc, 'system_create', c_time, :stored_sortable)
|
16
16
|
Solrizer.set_field(solr_doc, 'system_modified', m_time, :stored_sortable)
|
17
|
-
Solrizer.set_field(solr_doc, 'active_fedora_model', self.class.inspect, :
|
17
|
+
Solrizer.set_field(solr_doc, 'active_fedora_model', self.class.inspect, :stored_sortable)
|
18
18
|
solr_doc.merge!(SOLR_DOCUMENT_ID.to_sym => pid)
|
19
19
|
solrize_profile(solr_doc)
|
20
20
|
end
|
@@ -3,10 +3,9 @@ module ActiveFedora
|
|
3
3
|
class NokogiriDatastream < OmDatastream
|
4
4
|
extend Deprecation
|
5
5
|
def initialize(digital_object=nil, dsid=nil, options={})
|
6
|
+
Deprecation.warn(self.class, "NokogiriDatastream is deprecated and will be removed in hydra-head 7.0. Use OmDatastream insead.", caller(2))
|
6
7
|
super
|
7
8
|
end
|
8
|
-
self.deprecation_horizon= "hydra-head 7.0"
|
9
|
-
deprecation_deprecate :initialize
|
10
9
|
end
|
11
10
|
end
|
12
11
|
|
@@ -13,30 +13,6 @@
|
|
13
13
|
<field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
14
14
|
<field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
15
15
|
|
16
|
-
<!--these fields are hard coded in places in hydra-head -->
|
17
|
-
<field name="active_fedora_model_s" type="string" stored="true" indexed="true"/>
|
18
|
-
<field name="object_profile_display" type="string" stored="true" indexed="true"/>
|
19
|
-
<field name="has_model_s" type="string" stored="true" indexed="true"/>
|
20
|
-
<field name="is_governed_by_s" type="string" stored="true" indexed="true"/>
|
21
|
-
|
22
|
-
<!--
|
23
|
-
These are hard coded in places in hydra-head, but we hope to fix that.
|
24
|
-
|
25
|
-
<field name="inheritable_discover_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
26
|
-
<field name="inheritable_read_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
27
|
-
<field name="inheritable_edit_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
28
|
-
<field name="inheritable_discover_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
29
|
-
<field name="inheritable_read_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
30
|
-
<field name="inheritable_edit_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
31
|
-
<field name="read_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
32
|
-
<field name="discover_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
33
|
-
<field name="edit_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
34
|
-
<field name="read_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
35
|
-
<field name="edit_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
36
|
-
<field name="discover_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
|
37
|
-
-->
|
38
|
-
|
39
|
-
|
40
16
|
<!-- NOTE: not all possible Solr field types are represented in the dynamic fields -->
|
41
17
|
|
42
18
|
<!-- text (_t...) -->
|
@@ -173,152 +149,16 @@
|
|
173
149
|
<!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
|
174
150
|
<field name="all_text_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
175
151
|
|
176
|
-
<!-- deprecated fields from pre-Solr 4.0 pre-hydra 5.0 -->
|
177
|
-
<!--
|
178
|
-
<field name="marc_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
179
|
-
<field name="title_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
180
|
-
<field name="title_vern_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
181
|
-
<field name="subtitle_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
182
|
-
<field name="subtitle_vern_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
183
|
-
<field name="author_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
184
|
-
<field name="author_vern_display" type="string" indexed="false" stored="true" multiValued="false"/>
|
185
|
-
-->
|
186
|
-
<!-- these fields are also used for display, so they must be stored -->
|
187
|
-
<!--
|
188
|
-
<field name="isbn_t" type="text" indexed="true" stored="true" multiValued="true"/>
|
189
|
-
<field name="language_facet" type="string" indexed="true" stored="true" multiValued="true" />
|
190
|
-
<field name="subject_topic_facet" type="string" indexed="true" stored="true" multiValued="true" />
|
191
|
-
<field name="subject_era_facet" type="string" indexed="true" stored="true" multiValued="true" />
|
192
|
-
<field name="subject_geo_facet" type="string" indexed="true" stored="true" multiValued="true" />
|
193
|
-
-->
|
194
|
-
<!-- pub_date is used for facet and display so it must be indexed and stored -->
|
195
|
-
<!--
|
196
|
-
<field name="pub_date" type="string" indexed="true" stored="true" multiValued="true"/>
|
197
|
-
-->
|
198
|
-
<!-- pub_date sort uses new trie-based int fields, which are recommended for any int and are displayable, sortable, and range-quer
|
199
|
-
we use 'tint' for faster range-queries. -->
|
200
|
-
<!--
|
201
|
-
<field name="pub_date_sort" type="tint" indexed="true" stored="true" multiValued="false"/>
|
202
|
-
-->
|
203
|
-
<!-- format is used for facet, display, and choosing which partial to use for the show view, so it must be stored and indexed -->
|
204
|
-
<!--
|
205
|
-
<field name="format" type="string" indexed="true" stored="true"/>
|
206
|
-
|
207
|
-
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
|
208
|
-
<dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="true"/>
|
209
|
-
<dynamicField name="*_l" type="long" indexed="true" stored="true"/>
|
210
|
-
<dynamicField name="*_t" type="text" indexed="true" stored="true" multiValued="true"/>
|
211
|
-
<dynamicField name="*_txt" type="text_general" indexed="true" stored="true" multiValued="true"/>
|
212
|
-
<dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
|
213
|
-
<dynamicField name="*_f" type="float" indexed="true" stored="true"/>
|
214
|
-
<dynamicField name="*_d" type="double" indexed="true" stored="true"/>
|
215
|
-
|
216
|
-
<dynamicField name="ignored_*" type="ignored" multiValued="true"/>
|
217
|
-
<dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/>
|
218
|
-
|
219
|
-
<dynamicField name="random_*" type="random" />
|
220
|
-
|
221
|
-
<dynamicField name="*_display" type="string" indexed="false" stored="true" multiValued="true" />
|
222
|
-
<dynamicField name="*_facet" type="string" indexed="true" stored="true" multiValued="true" />
|
223
|
-
<dynamicField name="*_sort" type="string" indexed="true" stored="false" multiValued="false" />
|
224
|
-
<dynamicField name="*_unstem_search" type="text_general" indexed="true" stored="false" multiValued="true" />
|
225
|
-
<dynamicField name="*spell" type="textSpell" indexed="true" stored="false" multiValued="true" />
|
226
|
-
-->
|
227
|
-
<!-- uncomment the following to ignore any fields that don't already match an existing
|
228
|
-
field name or dynamic field, rather than reporting them as an error.
|
229
|
-
alternately, change the type="ignored" to some other type e.g. "text" if you want
|
230
|
-
unknown fields indexed and/or stored by default -->
|
231
|
-
<!--dynamicField name="*" type="ignored" multiValued="true" /-->
|
232
|
-
|
233
|
-
<!-- END hydra deprecated items -->
|
234
152
|
|
235
153
|
</fields>
|
236
154
|
|
237
|
-
<!-- START hydra deprecated items -->
|
238
|
-
<!--
|
239
|
-
<defaultSearchField>text</defaultSearchField>
|
240
|
-
-->
|
241
|
-
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
|
242
|
-
<!--
|
243
|
-
<solrQueryParser defaultOperator="AND"/>
|
244
|
-
|
245
|
-
<copyField source="title_t" dest="title_unstem_search"/>
|
246
|
-
<copyField source="subtitle_t" dest="subtitle_unstem_search"/>
|
247
|
-
<copyField source="title_addl_t" dest="title_addl_unstem_search"/>
|
248
|
-
<copyField source="title_added_entry_t" dest="title_added_entry_unstem_search"/>
|
249
|
-
<copyField source="title_series_t" dest="title_series_unstem_search"/>
|
250
|
-
<copyField source="author_t" dest="author_unstem_search"/>
|
251
|
-
<copyField source="author_addl_t" dest="author_addl_unstem_search"/>
|
252
|
-
<copyField source="subject_t" dest="subject_unstem_search"/>
|
253
|
-
<copyField source="subject_addl_t" dest="subject_addl_unstem_search"/>
|
254
|
-
<copyField source="subject_topic_facet" dest="subject_topic_unstem_search"/>
|
255
|
-
-->
|
256
|
-
<!-- sort fields -->
|
257
|
-
<!--
|
258
|
-
<copyField source="pub_date" dest="pub_date_sort"/>
|
259
|
-
-->
|
260
|
-
|
261
|
-
<!-- spellcheck fields -->
|
262
|
-
<!-- default spell check; should match fields for default request handler -->
|
263
|
-
<!-- it won't work with a copy of a copy field -->
|
264
|
-
<!--
|
265
|
-
<copyField source="*_t" dest="spell"/>
|
266
|
-
<copyField source="*_facet" dest="spell"/>
|
267
|
-
-->
|
268
|
-
<!-- title spell check; should match fields for title request handler -->
|
269
|
-
<!--
|
270
|
-
<copyField source="title_t" dest="title_spell"/>
|
271
|
-
<copyField source="subtitle_t" dest="title_spell"/>
|
272
|
-
<copyField source="addl_titles_t" dest="title_spell"/>
|
273
|
-
<copyField source="title_added_entry_t" dest="title_spell"/>
|
274
|
-
<copyField source="title_series_t" dest="title_spell"/>
|
275
|
-
-->
|
276
|
-
<!-- author spell check; should match fields for author request handler -->
|
277
|
-
<!--
|
278
|
-
<copyField source="author_t" dest="author_spell"/>
|
279
|
-
<copyField source="author_addl_t" dest="author_spell"/>
|
280
|
-
-->
|
281
|
-
<!-- subject spell check; should match fields for subject request handler -->
|
282
|
-
<!--
|
283
|
-
<copyField source="subject_topic_facet" dest="subject_spell"/>
|
284
|
-
<copyField source="subject_t" dest="subject_spell"/>
|
285
|
-
<copyField source="subject_addl_t" dest="subject_spell"/>
|
286
|
-
-->
|
287
|
-
|
288
|
-
<!-- OpenSearch query field should match request handler search fields -->
|
289
|
-
<!--
|
290
|
-
<copyField source="title_t" dest="opensearch_display"/>
|
291
|
-
<copyField source="subtitle_t" dest="opensearch_display"/>
|
292
|
-
<copyField source="addl_titles_t" dest="opensearch_display"/>
|
293
|
-
<copyField source="title_added_entry_t" dest="opensearch_display"/>
|
294
|
-
<copyField source="title_series_t" dest="opensearch_display"/>
|
295
|
-
<copyField source="author_t" dest="opensearch_display"/>
|
296
|
-
<copyField source="author_addl_t" dest="opensearch_display"/>
|
297
|
-
<copyField source="subject_topic_facet" dest="opensearch_display"/>
|
298
|
-
<copyField source="subject_t" dest="opensearch_display"/>
|
299
|
-
<copyField source="subject_addl_t" dest="opensearch_display"/>
|
300
|
-
-->
|
301
155
|
|
302
156
|
<!-- Above, multiple source fields are copied to the [text] field.
|
303
157
|
Another way to map multiple source fields to the same
|
304
158
|
destination field is to use the dynamic field syntax.
|
305
159
|
copyField also supports a maxChars to copy setting. -->
|
306
160
|
|
307
|
-
<!-- <copyField source="*
|
308
|
-
<!--
|
309
|
-
<copyField source="*_s" dest="text"/>
|
310
|
-
<copyField source="*_t" dest="text"/>
|
311
|
-
<copyField source="*_facet" dest="text"/>
|
312
|
-
-->
|
313
|
-
<!-- copy name to alphaNameSort, a field designed for sorting by name -->
|
314
|
-
<!-- <copyField source="name" dest="alphaNameSort"/> -->
|
315
|
-
|
316
|
-
<!-- END hydra deprecated items -->
|
317
|
-
|
318
|
-
<!-- copy fields; note that you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
|
319
|
-
<!--
|
320
|
-
<copyField source="some_field" dest="all_text_timv" />
|
321
|
-
-->
|
161
|
+
<!-- <copyField source="*_tesim" dest="all_text_timv" maxChars="3000"/> -->
|
322
162
|
|
323
163
|
<types>
|
324
164
|
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
|