From dbf3391541c16761e791a5e8f8404d6f34a9db27 Mon Sep 17 00:00:00 2001 From: bdc34 Date: Thu, 3 Feb 2011 18:44:21 +0000 Subject: [PATCH] Adding field NAMERAW to lucene index. --- .../webapp/controller/EntityListController.java | 4 ++-- .../vitro/webapp/controller/EntityURLController.java | 2 +- .../webapp/controller/TabEntitiesController.java | 6 +++--- .../search/controller/AutocompleteController.java | 2 +- .../vitro/webapp/search/lucene/Entity2LuceneDoc.java | 12 ++++++++---- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityListController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityListController.java index 8d4b043e5..ae60f849a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityListController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityListController.java @@ -185,7 +185,7 @@ public class EntityListController extends VitroHttpServlet { try{ docs = index.search(query, null, ENTITY_LIST_CONTROLLER_MAX_RESULTS, - new Sort(Entity2LuceneDoc.term.NAMEUNANALYZED)); + new Sort(Entity2LuceneDoc.term.NAMELOWERCASE)); }catch(Throwable th){ log.error("Could not run search. " + th.getMessage()); docs = null; @@ -271,7 +271,7 @@ public class EntityListController extends VitroHttpServlet { Query alphaQuery = null; if( alpha != null && !"".equals(alpha) && alpha.length() == 1){ alphaQuery = - new PrefixQuery(new Term(Entity2LuceneDoc.term.NAMEUNANALYZED, alpha.toLowerCase())); + new PrefixQuery(new Term(Entity2LuceneDoc.term.NAMELOWERCASE, alpha.toLowerCase())); query.add(alphaQuery,BooleanClause.Occur.MUST); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityURLController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityURLController.java index c7425ee6e..0f4cbdc93 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityURLController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityURLController.java @@ -105,7 +105,7 @@ public void doGet (HttpServletRequest req, HttpServletResponse res) throws IOExc IndexSearcher index = LuceneIndexFactory.getIndexSearcher(getServletContext()); TopDocs docs = index.search(query, null, ENTITY_LIST_CONTROLLER_MAX_RESULTS, - new Sort(Entity2LuceneDoc.term.NAMEUNANALYZED)); + new Sort(Entity2LuceneDoc.term.NAMELOWERCASE)); if( docs == null ){ log.error("Search of lucene index returned null"); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/TabEntitiesController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/TabEntitiesController.java index e5a488324..4a7fc2c61 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/TabEntitiesController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/TabEntitiesController.java @@ -247,10 +247,10 @@ public void doGet( HttpServletRequest req, HttpServletResponse response ) }else if( sortField.equalsIgnoreCase("sunset") ){ sort = new Sort(Entity2LuceneDoc.term.SUNSET); }else{ - sort = new Sort(Entity2LuceneDoc.term.NAMEUNANALYZED); + sort = new Sort(Entity2LuceneDoc.term.NAMELOWERCASE); } } else { - sort = new Sort(Entity2LuceneDoc.term.NAMEUNANALYZED); + sort = new Sort(Entity2LuceneDoc.term.NAMELOWERCASE); } if( depth > 1 && "rand()".equalsIgnoreCase(sortField) ){ @@ -482,7 +482,7 @@ public void doGet( HttpServletRequest req, HttpServletResponse response ) Query alphaQuery = null; if( alpha != null && !"".equals(alpha) && alpha.length() == 1){ alphaQuery = - new PrefixQuery(new Term(Entity2LuceneDoc.term.NAMEUNANALYZED, alpha.toLowerCase())); + new PrefixQuery(new Term(Entity2LuceneDoc.term.NAMELOWERCASE, alpha.toLowerCase())); query.add(alphaQuery,BooleanClause.Occur.MUST); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java index 9310b4575..0c3963566 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java @@ -329,7 +329,7 @@ public class AutocompleteController extends FreemarkerHttpServlet{ private Query makeUntokenizedNameQuery(String querystr) { querystr = querystr.toLowerCase(); - String termName = Entity2LuceneDoc.term.NAMEUNANALYZED; + String termName = Entity2LuceneDoc.term.NAMELOWERCASE; BooleanQuery query = new BooleanQuery(); log.debug("Adding wildcard query on unanalyzed name"); query.add( diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/lucene/Entity2LuceneDoc.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/lucene/Entity2LuceneDoc.java index 4588a3b55..277612196 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/lucene/Entity2LuceneDoc.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/lucene/Entity2LuceneDoc.java @@ -47,9 +47,11 @@ public class Entity2LuceneDoc implements Obj2DocIface{ /** Name of entity, tab or vclass */ public static String NAME = "name"; /** rdfs:label unanalyzed */ - public static String NAMEUNANALYZED = "nameunanalyzed" ; + public static String NAMELOWERCASE = "nameunanalyzed" ; /** Name of entity, unstemmed */ public static String NAMEUNSTEMMED = "nameunstemmed"; + /** Unaltered name of individual, un-lowercased, un-stemmed, un-tokenized" */ + public static String NAMERAW = "nameraw"; /** portal ( 2 ^ portalId ) */ public static String PORTAL = "portal"; /** Flag 2 (legacy, only used at Cornell) */ @@ -122,7 +124,7 @@ public class Entity2LuceneDoc implements Obj2DocIface{ value = ent.getLocalName(); } Field name =new Field(term.NAME, value, - Field.Store.YES, Field.Index.ANALYZED); + Field.Store.NO, Field.Index.ANALYZED); name.setBoost( NAME_BOOST ); doc.add( name ); @@ -131,10 +133,12 @@ public class Entity2LuceneDoc implements Obj2DocIface{ nameUn.setBoost( NAME_BOOST ); doc.add( nameUn ); - Field nameUnanalyzed = new Field(term.NAMEUNANALYZED, value.toLowerCase(), + Field nameUnanalyzed = new Field(term.NAMELOWERCASE, value.toLowerCase(), Field.Store.YES, Field.Index.NOT_ANALYZED); doc.add( nameUnanalyzed ); - + + doc.add( new Field(term.NAMERAW, value, Field.Store.YES, Field.Index.NOT_ANALYZED)); + //boost for entity if( ent.getSearchBoost() != null && ent.getSearchBoost() != 0 ) doc.setBoost(ent.getSearchBoost());