From e818f1ab24b4c6802026a487fb7b9871ff511cd5 Mon Sep 17 00:00:00 2001 From: Jim Blake Date: Mon, 9 Mar 2015 16:32:12 -0400 Subject: [PATCH] VIVO-986 Limit the concatenation of string values to ALLTEXT and ALLTEXTUNSTEMMED --- .../searchengine/solr/SolrConversionUtils.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java index eea3b72b1..38e95990f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java @@ -2,6 +2,9 @@ package edu.cornell.mannlib.vitro.webapp.searchengine.solr; +import static edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames.ALLTEXT; +import static edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames.ALLTEXTUNSTEMMED; + import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -21,6 +24,7 @@ import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchInputField; import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchQuery; import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchQuery.Order; import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchResponse; +import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames; import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchFacetField; import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchFacetField.BaseCount; import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchResponse; @@ -64,11 +68,15 @@ public class SolrConversionUtils { private static SolrInputField convertToSolrInputField( SearchInputField searchInputField) { - SolrInputField solrField = new SolrInputField( - searchInputField.getName()); + String name = searchInputField.getName(); + SolrInputField solrField = new SolrInputField(name); - Collection values = joinStringValues(searchInputField - .getValues()); + Collection values; + if (name.equals(ALLTEXT) || name.equals(ALLTEXTUNSTEMMED)) { + values = joinStringValues(searchInputField.getValues()); + } else { + values = searchInputField.getValues(); + } if (values.isEmpty()) { // No values, nothing to do.