VIVO-986 Limit the concatenation of string values to ALLTEXT and ALLTEXTUNSTEMMED

This commit is contained in:
Jim Blake 2015-03-09 16:32:12 -04:00
parent 32979536e6
commit e818f1ab24

View file

@ -2,6 +2,9 @@
package edu.cornell.mannlib.vitro.webapp.searchengine.solr; 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.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; 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;
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchQuery.Order; 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.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;
import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchFacetField.BaseCount; import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchFacetField.BaseCount;
import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchResponse; import edu.cornell.mannlib.vitro.webapp.searchengine.base.BaseSearchResponse;
@ -64,11 +68,15 @@ public class SolrConversionUtils {
private static SolrInputField convertToSolrInputField( private static SolrInputField convertToSolrInputField(
SearchInputField searchInputField) { SearchInputField searchInputField) {
SolrInputField solrField = new SolrInputField( String name = searchInputField.getName();
searchInputField.getName()); SolrInputField solrField = new SolrInputField(name);
Collection<Object> values = joinStringValues(searchInputField Collection<Object> values;
.getValues()); if (name.equals(ALLTEXT) || name.equals(ALLTEXTUNSTEMMED)) {
values = joinStringValues(searchInputField.getValues());
} else {
values = searchInputField.getValues();
}
if (values.isEmpty()) { if (values.isEmpty()) {
// No values, nothing to do. // No values, nothing to do.