-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdpla_solr_record_template.xml.erb
89 lines (83 loc) · 4.31 KB
/
dpla_solr_record_template.xml.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<%
marc_fields = [
'034d', '034e', '034f', '034g', '100a', '100c', '100d', '130a', '240a',
'245a', '245b', '245c', '245p', '246a', '260a', '260b', '260c', '260e',
'260f', '300a', '300c', '440a', '440p', '500a', '600v', '600y', '610v',
'610y', '611v', '611y', '630v', '630y', '650v', '650y', '651v', '651y',
'655a', '655b', '655v', '655y', '690v', '690y', '691v', '691y', '692v',
'692y', '693v', '693y', '694v', '694y', '695v', '695y', '700a', '700d',
'700e', '730a', '740a', '752a', '752b', '752d', '830a', '830p', '840a'
]
dpla_fields = [
'dpla.contributor_record_id', 'dpla.dataset_id', 'dpla.date', 'dpla.id',
'dpla.oclc', 'dpla.subject', 'dpla.creator', 'dpla.description', 'dpla.language',
'dpla.format', 'dpla.title', 'dpla.publisher', 'dpla.isbn', 'dpla.lccn',
'dpla.resource_type', 'dpla.keyword', 'dpla.contributor'
]
%>
<% docs.each do |doc| %>
<% doc['geotags'].each do |geotag| %>
<add allowDups="false">
<doc>
<field name="RecId"><%= doc['dpla.contributor_record_id'] %>-<%= geotag['anchor_start'] %></field>
<field name="primLoc"><%= "#{geotag['disjuncts'][0]['latitude']},#{geotag['disjuncts'][0]['longitude']}" %></field>
<field name="cLoc1"><%= "#{geotag['disjuncts'][0]['latitude']},#{geotag['disjuncts'][0]['longitude']}" %></field>
<% if geotag['disjuncts'][1] %>
<field name="cLoc2"><%= "#{geotag['disjuncts'][1]['latitude']},#{geotag['disjuncts'][1]['longitude']}" %></field>
<% end %>
<% if geotag['disjuncts'][2] %>
<field name="cLoc3"><%= "#{geotag['disjuncts'][2]['latitude']},#{geotag['disjuncts'][2]['longitude']}" %></field>
<% end %>
<% dpla_fields.each do |field| %>
<% field_name = field.gsub('.', '_') %>
<% if doc[field].kind_of? Array %>
<% doc[field].each do |field_value| %>
<field name="<%= field_name %>"><%= field_value.clean %></field>
<% end %>
<% elsif doc[field] %>
<field name="<%= field_name %>"><%= doc[field].clean %></field>
<% end %>
<% end %>
<% marc_fields.each do |field| %>
<% if doc[field].kind_of? Array %>
<% doc[field].each do |field_value| %>
<field name="<%= field %>"><%= field_value.clean %></field>
<% end %>
<% elsif doc[field] %>
<field name="<%= field %>"><%= doc[field].clean %></field>
<% end %>
<% end %>
<field name="Match_Confidence"><%= geotag['confidence'] %></field>
<field name="Geocoded_Field"><%= geotag['in_field'].gsub('.','_') %></field>
<% geotag['disjuncts'].each_with_index do |disjunct, i| %>
<field name="Disjunct_Weight<%= i + 1 %>"><%= disjunct['weight'] %></field>
<field name="Conjunct_Name<%= i + 1 %>"><%= disjunct['name'] %></field>
<% if disjunct['country'] %>
<field name="Conjunct_Country<%= i + 1 %>"><%= disjunct['country'] %></field>
<% end %>
<% if disjunct['country_name'] %>
<field name="Conjunct_CountryName<%= i + 1 %>"><%= disjunct['country_name'] %></field>
<% end %>
<% if disjunct['country_confidence'] %>
<field name="Conjunct_CountryConfidence<%= i + 1 %>"><%= disjunct['country_confidence'] %></field>
<% end %>
<% if disjunct['province'] %>
<field name="Conjunct_Province<%= i + 1 %>"><%= disjunct['province'] %></field>
<% end %>
<% if disjunct['province_name'] %>
<field name="Conjunct_ProvinceName<%= i + 1 %>"><%= disjunct['province_name'] %></field>
<% end %>
<% if disjunct['province_confidence'] %>
<field name="Conjunct_ProvinceConfidence<%= i + 1 %>"><%= disjunct['province_confidence'] %></field>
<% end %>
<field name="Conjunct_Latitude<%= i + 1 %>"><%= disjunct['latitude'] %></field>
<field name="Conjunct_Longitude<%= i + 1 %>"><%= disjunct['longitude'] %></field>
<% [12, 10, 8, 6, 4, 3, 2].each do |precision| %>
<field name="geo_hash<%= precision %>_<%= i + 1 %>"><%= disjunct["geo_hash"][0, precision] %></field>
<% end %>
<% end %>
<field name="MarcText"><![CDATA[<%= doc.to_json %>]]></field>
</doc>
</add>
<% end %>
<% end %>