diff --git a/browse-handler/java/org/vufind/solr/handler/AuthDB.java b/browse-handler/java/org/vufind/solr/handler/AuthDB.java index b8129b3..3f97ebb 100644 --- a/browse-handler/java/org/vufind/solr/handler/AuthDB.java +++ b/browse-handler/java/org/vufind/solr/handler/AuthDB.java @@ -7,6 +7,7 @@ import java.util.Map; import org.apache.lucene.document.Document; +import org.apache.lucene.index.StoredFields; import org.apache.lucene.index.Term; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TopDocs; @@ -61,7 +62,7 @@ public Document getAuthorityRecord(String heading) 1)); if (results.totalHits.value > 0) { - return searcher.getIndexReader().document(results.scoreDocs[0].doc); + return searcher.getIndexReader().storedFields().document(results.scoreDocs[0].doc); } else { return null; } @@ -77,8 +78,9 @@ public List getPreferredHeadings(String heading) List result = new ArrayList<> (); + StoredFields storedFields = searcher.getIndexReader().storedFields(); for (int i = 0; i < results.totalHits.value; i++) { - result.add(searcher.getIndexReader().document(results.scoreDocs[i].doc)); + result.add(storedFields.document(results.scoreDocs[i].doc)); } return result; diff --git a/browse-handler/java/org/vufind/solr/handler/BibDB.java b/browse-handler/java/org/vufind/solr/handler/BibDB.java index dab4bc1..eb7a340 100644 --- a/browse-handler/java/org/vufind/solr/handler/BibDB.java +++ b/browse-handler/java/org/vufind/solr/handler/BibDB.java @@ -259,7 +259,7 @@ public void collect(int docnum) { int docid = docnum + context.docBase; try { - Document doc = db.getIndexReader().document(docid); + Document doc = db.getIndexReader().storedFields().document(docid); for (String bibField : bibExtras) { String[] vals = doc.getValues(bibField); if (vals.length > 0) { @@ -367,7 +367,7 @@ public void collect(int docnum) { int docid = docnum + context.docBase; try { - Document doc = db.getIndexReader().document(docid); + Document doc = db.getIndexReader().storedFields().document(docid); for (String bibField : bibExtras) { for (String v : doc.getValues(bibField)) { bibinfo.get(bibField).add(v); diff --git a/browse-indexing/PrintBrowseHeadings.java b/browse-indexing/PrintBrowseHeadings.java index 6d67d19..3627514 100644 --- a/browse-indexing/PrintBrowseHeadings.java +++ b/browse-indexing/PrintBrowseHeadings.java @@ -107,8 +107,9 @@ private boolean isLinkedFromBibData(String heading) } } + StoredFields storedFields = authSearcher.getIndexReader().storedFields(); for (int i = 0; i < hits.scoreDocs.length; i++) { - Document doc = authSearcher.getIndexReader().document(hits.scoreDocs[i].doc); + Document doc = storedFields.document(hits.scoreDocs[i].doc); String[] preferred = doc.getValues(System.getProperty("field.preferred", "preferred")); if (preferred.length > 0) { diff --git a/browse-indexing/StoredFieldLeech.java b/browse-indexing/StoredFieldLeech.java index 5d3bab9..21c6b21 100644 --- a/browse-indexing/StoredFieldLeech.java +++ b/browse-indexing/StoredFieldLeech.java @@ -48,7 +48,7 @@ public StoredFieldLeech (String indexPath, String field, String filter) throws E private void loadDocument(IndexReader reader, int docid) throws Exception { - Document doc = reader.document(currentDoc, fieldSelection); + Document doc = reader.storedFields().document(currentDoc, fieldSelection); String[] sort_key = doc.getValues (sortField); String[] value = doc.getValues (valueField); diff --git a/build.xml b/build.xml index 8facbef..6110a0b 100644 --- a/build.xml +++ b/build.xml @@ -45,6 +45,9 @@ + + + diff --git a/common/java/org/vufind/util/TitleNormalizer.java b/common/java/org/vufind/util/TitleNormalizer.java new file mode 100644 index 0000000..7324516 --- /dev/null +++ b/common/java/org/vufind/util/TitleNormalizer.java @@ -0,0 +1,18 @@ +package org.vufind.util; + +import java.util.EnumSet; + +import org.solrmarc.index.extractor.formatter.FieldFormatter; +import org.solrmarc.tools.DataUtil; + +public class TitleNormalizer implements Normalizer +{ + @Override + public byte[] normalize(String s) + { + EnumSet cleanValue = DataUtil.getCleanValForParam("titleSortLower"); + String normalizedTitle = DataUtil.cleanByVal(s, cleanValue); + byte[] bytes = normalizedTitle == null ? null : normalizedTitle.getBytes(); + return bytes; + } +}