solr_ead 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,39 +1,39 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- solr_ead (0.2.0)
5
- om (~> 1.8.0)
4
+ solr_ead (0.3.2)
5
+ om
6
6
  rsolr
7
7
  sanitize
8
- solrizer (~> 2.0.0)
8
+ solrizer (~> 2.1.0.rc1)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activemodel (3.2.9)
14
- activesupport (= 3.2.9)
13
+ activemodel (3.2.11)
14
+ activesupport (= 3.2.11)
15
15
  builder (~> 3.0.0)
16
- activesupport (3.2.9)
16
+ activesupport (3.2.11)
17
17
  i18n (~> 0.6)
18
18
  multi_json (~> 1.0)
19
19
  builder (3.0.4)
20
20
  columnize (0.3.6)
21
21
  daemons (1.1.9)
22
- debugger (1.2.2)
22
+ debugger (1.2.3)
23
23
  columnize (>= 0.3.1)
24
24
  debugger-linecache (~> 1.1.1)
25
25
  debugger-ruby_core_source (~> 1.1.5)
26
26
  debugger-linecache (1.1.2)
27
27
  debugger-ruby_core_source (>= 1.1.1)
28
- debugger-ruby_core_source (1.1.5)
28
+ debugger-ruby_core_source (1.1.6)
29
29
  deprecation (0.0.5)
30
30
  activesupport
31
31
  diff-lcs (1.1.3)
32
32
  i18n (0.6.1)
33
- json (1.7.5)
33
+ json (1.7.6)
34
34
  mediashelf-loggable (0.4.9)
35
- multi_json (1.4.0)
36
- nokogiri (1.5.5)
35
+ multi_json (1.5.0)
36
+ nokogiri (1.5.6)
37
37
  om (1.8.0)
38
38
  activemodel
39
39
  activesupport
@@ -49,20 +49,21 @@ GEM
49
49
  rspec-core (~> 2.12.0)
50
50
  rspec-expectations (~> 2.12.0)
51
51
  rspec-mocks (~> 2.12.0)
52
- rspec-core (2.12.1)
53
- rspec-expectations (2.12.0)
52
+ rspec-core (2.12.2)
53
+ rspec-expectations (2.12.1)
54
54
  diff-lcs (~> 1.1.3)
55
- rspec-mocks (2.12.0)
55
+ rspec-mocks (2.12.1)
56
56
  sanitize (2.0.3)
57
57
  nokogiri (>= 1.4.4, < 1.6)
58
- solrizer (2.0.0)
58
+ solrizer (2.1.0.rc1)
59
+ activesupport
59
60
  daemons
60
61
  mediashelf-loggable (~> 0.4.7)
61
62
  nokogiri
62
63
  om (>= 1.5.0)
63
64
  stomp
64
65
  xml-simple
65
- stomp (1.2.7)
66
+ stomp (1.2.8)
66
67
  xml-simple (1.1.2)
67
68
  yard (0.8.3)
68
69
 
data/README.md CHANGED
@@ -50,11 +50,22 @@ You can also do this via the command line:
50
50
  This code originated in a Blacklight application and some of its default solr fields
51
51
  reflect a Blacklight-style solr implementation. For example, certain facet fields such as
52
52
  subject_topic_facet and title_display will appear in your solr index by default. If you
53
- are trying out the gem within a default Blacklight installation, you should be able to
54
- index your ead without any modifications. However, the only fields that will appear in
55
- your search results will be format and title. In order to make this into working
56
- solution, you'll need to modify both the definitions of documents and components within
57
- SolrEad and configure Blacklight's own display and facet fields accordingly.
53
+ are trying out the gem within a default Blacklight installation, you will need to make
54
+ the following changes to your schema.xml file:
55
+
56
+ <dynamicField name="*_id" type="string" indexed="true" stored="true" multiValued="false" />
57
+ <dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="true" />
58
+
59
+ Fields ending in "_id" are used for identifying components within finding aids as well as
60
+ the finding aid itself, which may not always be the same as the default "id" field for
61
+ the solr document. "_s" fields are not multivalued by default in Blacklight, so you'll
62
+ need to edit the existing entry for this dyamic field to reflect the change.
63
+
64
+ Other than that, your solr configuration should require no futher modifications;
65
+ however, the only fields that will appear in your search results will be format
66
+ and title. In order to make this into working solution, you'll need to modify
67
+ both the definitions of documents and components within SolrEad and configure
68
+ Blacklight's own display and facet fields accordingly.
58
69
 
59
70
  ## Applications
60
71
 
@@ -160,6 +171,15 @@ your solrconfig.xml file, under the "search" request handler:
160
171
 
161
172
  <lst name="appends"><str name="fq">-component_children_b:[TRUE TO *]</str></lst>
162
173
 
174
+ ## Issues
175
+
176
+ ### eadid format
177
+
178
+ solr_ead uses the <eadid> node to create unique ids for documents. Consequently, if you're using
179
+ a rails app, this id will be a part of the url. If your eadid has .xml or some other combination
180
+ of characters preceeded by a period, this will cause Rails to interpret these characters as a
181
+ format, which you don't want. You may need to edit your eadid nodes if this is the case.
182
+
163
183
  ## Contributing
164
184
 
165
185
  If you have questions or have specific needs, let me know. If you have other ideas or
@@ -86,7 +86,7 @@ class SolrEad::Component
86
86
  super(solr_doc)
87
87
  solr_doc.merge!({"format" => "Archival Item"})
88
88
  solr_doc["parent_unittitles_display"].length > 0 ? solr_doc.merge!({"heading_display" => [ solr_doc["parent_unittitles_display"], self.title.first].join(" >> ") }) : solr_doc.merge!({"heading_display" => self.title.first })
89
- solr_doc.merge!({"ref_id" => self.ref.first})
89
+ solr_doc.merge!({"ref_id" => self.ref.first.strip})
90
90
  end
91
91
 
92
92
  end
@@ -52,6 +52,8 @@ class SolrEad::Document
52
52
  t.arrangement_heading(:path=>"archdesc/arrangement/head", :index_as=>[:displayable])
53
53
  t.bioghist(:path=>"archdesc/bioghist/p", :index_as=>[:searchable])
54
54
  t.bioghist_heading(:path=>"archdesc/bioghist/head", :index_as=>[:displayable])
55
+ t.bibliography(:path=>"archdesc/bibliography/bibref", :index_as=>[:searchable])
56
+ t.bibliography_heading(:path=>"archdesc/bibliography/head", :index_as=>[:displayable])
55
57
  t.custodhist(:path=>"archdesc/custodhist/p", :index_as=>[:searchable])
56
58
  t.custodhist_heading(:path=>"archdesc/custodhist/head", :index_as=>[:displayable])
57
59
  t.fileplan(:path=>"archdesc/fileplan/p", :index_as=>[:searchable])
@@ -75,8 +77,8 @@ class SolrEad::Document
75
77
 
76
78
  def to_solr(solr_doc = Hash.new)
77
79
  super(solr_doc)
78
- solr_doc.merge!({"id" => self.eadid.first})
79
- solr_doc.merge!({"ead_id" => self.eadid.first})
80
+ solr_doc.merge!({"id" => self.eadid.first.strip})
81
+ solr_doc.merge!({"ead_id" => self.eadid.first.strip})
80
82
  solr_doc.merge!({"format" => "Archival Collection"})
81
83
  solr_doc.merge!({"heading_display" => ("Guide to the " + self.title.first + " (" + self.title_num.first + ")")}) unless self.title_num.empty?
82
84
  return solr_doc
@@ -41,6 +41,7 @@ class Indexer
41
41
  # Creates a new instance of SolrEad::Indexer and connects to your solr server
42
42
  # using the url supplied in your config/solr.yml file.
43
43
  def initialize(opts={})
44
+ Solrizer.default_field_mapper = EadMapper.new
44
45
  if defined?(Rails.root)
45
46
  url = YAML.load_file(File.join(Rails.root,"config","solr.yml"))[Rails.env]['url']
46
47
  elsif ENV['RAILS_ENV']
@@ -1,3 +1,3 @@
1
1
  module SolrEad
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
data/lib/solr_ead.rb CHANGED
@@ -10,7 +10,6 @@ module SolrEad
10
10
  end
11
11
 
12
12
  require "ead_mapper"
13
- require "terminology_based_solrizer"
14
13
  require "solr_ead/behaviors"
15
14
  require "solr_ead/om_behaviors"
16
15
  require "solr_ead/indexer"
@@ -1,5 +1,3 @@
1
- require "solr_ead"
2
-
3
1
  namespace :solr_ead do
4
2
 
5
3
  desc "Index and ead into solr using FILE=<path/to/ead.xml>"
data/solr_ead.gemspec CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.version = SolrEad::VERSION
17
17
 
18
18
  # Dependencies
19
- gem.add_dependency('om', '~> 1.8.0')
20
- gem.add_dependency('solrizer', '~> 2.0.0')
19
+ gem.add_dependency('om')
20
+ gem.add_dependency('solrizer', '~> 2.1.0.rc1')
21
21
  gem.add_dependency('rsolr')
22
22
  gem.add_dependency('sanitize')
23
23
  gem.add_development_dependency('yard')
@@ -3,10 +3,13 @@ require "spec_helper"
3
3
  describe SolrEad::Document do
4
4
 
5
5
  before(:all) do
6
+ Solrizer.default_field_mapper = EadMapper.new
6
7
  @ex1 = SolrEad::Document.from_xml(fixture "ARC-0005.xml")
7
8
  @ex2 = SolrEad::Document.from_xml(fixture "pp002010.xml")
9
+ @ex3 = SolrEad::Document.from_xml(fixture "ARC-0161.xml")
8
10
  @solr_ex1 = @ex1.to_solr
9
11
  @solr_ex2 = @ex2.to_solr
12
+ @solr_ex3 = @ex3.to_solr
10
13
  end
11
14
 
12
15
  describe "#terminology" do
@@ -44,6 +47,10 @@ describe SolrEad::Document do
44
47
  @ex2.to_xml.should match "<c01\s"\
45
48
  end
46
49
 
50
+ it "should have a bibliography" do
51
+ @ex3.bibliography.first.should == "All Music Guide. Accessed February 4, 2013. http://www.allmusic.com/."
52
+ end
53
+
47
54
  end
48
55
 
49
56
  describe ".to_solr" do