hydra-pbcore 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
data/hydra-pbcore.gemspec
CHANGED
data/lib/hydra-pbcore.rb
CHANGED
@@ -191,78 +191,6 @@ class DigitalDocument < ActiveFedora::NokogiriDatastream
|
|
191
191
|
end
|
192
192
|
return builder.doc
|
193
193
|
end
|
194
|
-
|
195
|
-
|
196
|
-
def to_solr(solr_doc=Solr::Document.new)
|
197
|
-
super(solr_doc)
|
198
|
-
|
199
|
-
solr_doc.merge!(:format => "Video")
|
200
|
-
solr_doc.merge!(:title_t => self.find_by_terms(:main_title).text)
|
201
|
-
|
202
|
-
# Specific fields for Blacklight export
|
203
|
-
|
204
|
-
# Title fields
|
205
|
-
solr_doc.merge!(:title_display => self.find_by_terms(:main_title).text)
|
206
|
-
["alternative_title", "chapter", "episode", "label", "segment", "subtitle", "track", "translation"].each do |addl_title|
|
207
|
-
solr_doc.merge!(:title_addl_display => self.find_by_terms(addl_title.to_sym).text)
|
208
|
-
end
|
209
|
-
solr_doc.merge!(:heading_display => self.find_by_terms(:main_title).text)
|
210
|
-
|
211
|
-
# Individual fields
|
212
|
-
solr_doc.merge!(:summary_display => self.find_by_terms(:summary).text)
|
213
|
-
solr_doc.merge!(:pub_date_display => self.find_by_terms(:event_date).text)
|
214
|
-
solr_doc.merge!(:publisher_display => gather_terms(self.find_by_terms(:publisher_name)))
|
215
|
-
solr_doc.merge!(:contributors_display => format_contributors_display)
|
216
|
-
solr_doc.merge!(:subject_display => gather_terms(self.find_by_terms(:subjects)))
|
217
|
-
solr_doc.merge!(:genre_display => gather_terms(self.find_by_terms(:genres)))
|
218
|
-
solr_doc.merge!(:series_display => gather_terms(self.find_by_terms(:event_series)))
|
219
|
-
|
220
|
-
solr_doc.merge!(:recinfo_display => gather_terms(self.find_by_terms(:event_place)))
|
221
|
-
solr_doc.merge!(:recinfo_display => gather_terms(self.find_by_terms(:event_date)))
|
222
|
-
solr_doc.merge!(:contents_display => gather_terms(self.find_by_terms(:parts_list)))
|
223
|
-
solr_doc.merge!(:notes_display => gather_terms(self.find_by_terms(:note)))
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
# Blacklight facets - these are the same facet fields used in our Blacklight app
|
228
|
-
# for consistency and so they'll show up when we export records from Hydra into BL:
|
229
|
-
solr_doc.merge!(:material_facet => "Digital")
|
230
|
-
solr_doc.merge!(:genre_facet => gather_terms(self.find_by_terms(:genres)))
|
231
|
-
solr_doc.merge!(:name_facet => gather_terms(self.find_by_terms(:contributor_name)))
|
232
|
-
solr_doc.merge!(:subject_topic_facet => gather_terms(self.find_by_terms(:subjects)))
|
233
|
-
solr_doc.merge!(:series_facet => gather_terms(self.find_by_terms(:event_series)))
|
234
|
-
|
235
|
-
# These fields are not in the parent...
|
236
|
-
#solr_doc.merge!(:format_facet => gather_terms(self.find_by_terms(:format)))
|
237
|
-
#solr_doc.merge!(:collection_facet => gather_terms(self.find_by_terms(:archival_collection)))
|
238
|
-
#solr_doc.merge!(:collection_display => gather_terms(self.find_by_terms(:archival_collection)))
|
239
|
-
#solr_doc.merge!(:physical_dtl_display => gather_terms(self.find_by_terms(:format)))
|
240
|
-
#solr_doc.merge!(:access_display => gather_terms(self.find_by_terms(:usage)))
|
241
|
-
|
242
|
-
# TODO: map PBcore's three-letter language codes to full language names
|
243
|
-
# Right now, everything's English.
|
244
|
-
# language field is not in the parent... yet?
|
245
|
-
# if self.find_by_terms(:language).text.match("eng")
|
246
|
-
# solr_doc.merge!(:language_facet => "English")
|
247
|
-
# solr_doc.merge!(:language_display => "English")
|
248
|
-
# else
|
249
|
-
# solr_doc.merge!(:language_facet => "Unknown")
|
250
|
-
# solr_doc.merge!(:language_display => "Unknown")
|
251
|
-
# end
|
252
|
-
|
253
|
-
# Extract 4-digit year for creation date facet in Hydra and pub_date facet in Blacklight
|
254
|
-
# not in parent
|
255
|
-
# create = self.find_by_terms(:creation_date).text.strip
|
256
|
-
# unless create.nil? or create.empty?
|
257
|
-
# solr_doc.merge!(:create_date_facet => DateTime.parse(create).strftime("%Y"))
|
258
|
-
# solr_doc.merge!(:pub_date => DateTime.parse(create).strftime("%Y"))
|
259
|
-
# end
|
260
|
-
|
261
|
-
# For full text, we stuff it into the mods_t field which is already configured for Mods doucments
|
262
|
-
solr_doc.merge!(:mods_t => self.ng_xml.text)
|
263
|
-
|
264
|
-
return solr_doc
|
265
|
-
end
|
266
194
|
|
267
195
|
|
268
196
|
end
|
@@ -256,70 +256,5 @@ class Document < ActiveFedora::NokogiriDatastream
|
|
256
256
|
end
|
257
257
|
|
258
258
|
|
259
|
-
def to_solr(solr_doc=Solr::Document.new)
|
260
|
-
super(solr_doc)
|
261
|
-
|
262
|
-
solr_doc.merge!(:format => "Video")
|
263
|
-
solr_doc.merge!(:title_t => self.find_by_terms(:main_title).text)
|
264
|
-
|
265
|
-
# Specific fields for Blacklight export
|
266
|
-
|
267
|
-
# Title fields
|
268
|
-
solr_doc.merge!(:title_display => self.find_by_terms(:main_title).text)
|
269
|
-
["alternative_title", "chapter", "episode", "label", "segment", "subtitle", "track", "translation"].each do |addl_title|
|
270
|
-
solr_doc.merge!(:title_addl_display => self.find_by_terms(addl_title.to_sym).text)
|
271
|
-
end
|
272
|
-
solr_doc.merge!(:heading_display => self.find_by_terms(:main_title).text)
|
273
|
-
|
274
|
-
# Individual fields
|
275
|
-
solr_doc.merge!(:summary_display => self.find_by_terms(:summary).text)
|
276
|
-
solr_doc.merge!(:pub_date_display => self.find_by_terms(:event_date).text)
|
277
|
-
solr_doc.merge!(:publisher_display => gather_terms(self.find_by_terms(:publisher_name)))
|
278
|
-
solr_doc.merge!(:contributors_display => format_contributors_display)
|
279
|
-
solr_doc.merge!(:subject_display => gather_terms(self.find_by_terms(:subjects)))
|
280
|
-
solr_doc.merge!(:genre_display => gather_terms(self.find_by_terms(:genres)))
|
281
|
-
solr_doc.merge!(:series_display => gather_terms(self.find_by_terms(:event_series)))
|
282
|
-
solr_doc.merge!(:physical_dtl_display => gather_terms(self.find_by_terms(:format)))
|
283
|
-
solr_doc.merge!(:recinfo_display => gather_terms(self.find_by_terms(:event_place)))
|
284
|
-
solr_doc.merge!(:recinfo_display => gather_terms(self.find_by_terms(:event_date)))
|
285
|
-
solr_doc.merge!(:contents_display => gather_terms(self.find_by_terms(:parts_list)))
|
286
|
-
solr_doc.merge!(:notes_display => gather_terms(self.find_by_terms(:note)))
|
287
|
-
solr_doc.merge!(:access_display => gather_terms(self.find_by_terms(:usage)))
|
288
|
-
solr_doc.merge!(:collection_display => gather_terms(self.find_by_terms(:archival_collection)))
|
289
|
-
|
290
|
-
# Blacklight facets - these are the same facet fields used in our Blacklight app
|
291
|
-
# for consistency and so they'll show up when we export records from Hydra into BL:
|
292
|
-
solr_doc.merge!(:material_facet => "Digital")
|
293
|
-
solr_doc.merge!(:genre_facet => gather_terms(self.find_by_terms(:genres)))
|
294
|
-
solr_doc.merge!(:name_facet => gather_terms(self.find_by_terms(:contributor_name)))
|
295
|
-
solr_doc.merge!(:subject_topic_facet => gather_terms(self.find_by_terms(:subjects)))
|
296
|
-
solr_doc.merge!(:series_facet => gather_terms(self.find_by_terms(:event_series)))
|
297
|
-
solr_doc.merge!(:format_facet => gather_terms(self.find_by_terms(:format)))
|
298
|
-
solr_doc.merge!(:collection_facet => gather_terms(self.find_by_terms(:archival_collection)))
|
299
|
-
|
300
|
-
# TODO: map PBcore's three-letter language codes to full language names
|
301
|
-
# Right now, everything's English.
|
302
|
-
if self.find_by_terms(:language).text.match("eng")
|
303
|
-
solr_doc.merge!(:language_facet => "English")
|
304
|
-
solr_doc.merge!(:language_display => "English")
|
305
|
-
else
|
306
|
-
solr_doc.merge!(:language_facet => "Unknown")
|
307
|
-
solr_doc.merge!(:language_display => "Unknown")
|
308
|
-
end
|
309
|
-
|
310
|
-
# Extract 4-digit year for creation date facet in Hydra and pub_date facet in Blacklight
|
311
|
-
create = self.find_by_terms(:creation_date).text.strip
|
312
|
-
unless create.nil? or create.empty?
|
313
|
-
solr_doc.merge!(:create_date_facet => get_year(create))
|
314
|
-
solr_doc.merge!(:pub_date => get_year(create))
|
315
|
-
end
|
316
|
-
|
317
|
-
# For full text, we stuff it into the mods_t field which is already configured for Mods doucments
|
318
|
-
solr_doc.merge!(:mods_t => self.ng_xml.text)
|
319
|
-
|
320
|
-
return solr_doc
|
321
|
-
end
|
322
|
-
|
323
|
-
|
324
259
|
end
|
325
260
|
end
|