diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java index 2631792cb78..5ffaaa5fbda 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java @@ -157,9 +157,9 @@ public class QueryElevationComponent extends SearchComponent implements SolrCore } SchemaField sf = core.getSchema().getUniqueKeyField(); - if( sf == null) { + if( sf == null || sf.getType().isTokenized() == true) { throw new SolrException( SolrException.ErrorCode.SERVER_ERROR, - "QueryElevationComponent requires the schema to have a uniqueKeyField." ); + "QueryElevationComponent requires the schema to have a uniqueKeyField implemented using a non-tokenized field" ); } idSchemaFT = sf.getType(); idField = sf.getName(); diff --git a/solr/core/src/java/org/apache/solr/response/transform/EditorialMarkerFactory.java b/solr/core/src/java/org/apache/solr/response/transform/EditorialMarkerFactory.java index f5c4d6d7be5..1187623b1e5 100644 --- a/solr/core/src/java/org/apache/solr/response/transform/EditorialMarkerFactory.java +++ b/solr/core/src/java/org/apache/solr/response/transform/EditorialMarkerFactory.java @@ -20,12 +20,9 @@ package org.apache.solr.response.transform; import java.util.Set; import org.apache.lucene.document.Field; -import org.apache.lucene.document.NumericField; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.params.SolrParams; import org.apache.solr.request.SolrQueryRequest; -import org.apache.solr.schema.FieldType; -import org.apache.solr.schema.SchemaField; /** * @@ -35,9 +32,8 @@ public class EditorialMarkerFactory extends TransformerFactory { @Override public DocTransformer create(String field, SolrParams params, SolrQueryRequest req) { - SchemaField uniqueKeyField = req.getSchema().getUniqueKeyField(); - String idfield = uniqueKeyField.getName(); - return new MarkTransformer(field,idfield, uniqueKeyField.getType()); + String idfield = req.getSchema().getUniqueKeyField().getName(); + return new MarkTransformer(field,idfield); } } @@ -45,13 +41,11 @@ class MarkTransformer extends TransformerWithContext { final String name; final String idFieldName; - final FieldType ft; - public MarkTransformer( String name, String idFieldName, FieldType ft) + public MarkTransformer( String name, String idFieldName) { this.name = name; this.idFieldName = idFieldName; - this.ft = ft; } @Override @@ -66,15 +60,11 @@ class MarkTransformer extends TransformerWithContext if(ids!=null) { String key; Object field = doc.get(idFieldName); - if (field instanceof NumericField){ - key = ((Field)field).stringValue(); - key = ft.readableToIndexed(key); - } else if (field instanceof Field){ + if (field instanceof Field){ key = ((Field)field).stringValue(); } else { key = field.toString(); } - doc.setField(name, ids.contains(key)); } else { //if we have no ids, that means we weren't boosting, but the user still asked for the field to be added, so just mark everything as false diff --git a/solr/core/src/test-files/solr/conf/elevate.xml b/solr/core/src/test-files/solr/conf/elevate.xml index c9a9fe4bdb6..19196a6559e 100644 --- a/solr/core/src/test-files/solr/conf/elevate.xml +++ b/solr/core/src/test-files/solr/conf/elevate.xml @@ -34,7 +34,7 @@ - + diff --git a/solr/core/src/test-files/solr/conf/solrconfig.xml b/solr/core/src/test-files/solr/conf/solrconfig.xml index 50bf213eb7e..8c916d599ec 100644 --- a/solr/core/src/test-files/solr/conf/solrconfig.xml +++ b/solr/core/src/test-files/solr/conf/solrconfig.xml @@ -425,20 +425,6 @@ - - - string - ${elevate.file:elevate.xml} - - - - - explicit - - - elevate - - diff --git a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java index 9bec31f4ba7..01989e59afe 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java @@ -53,11 +53,6 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 { } private void init(String schema) throws Exception { - init("solrconfig-elevate.xml", schema); - - } - - private void init(String config, String schema) throws Exception { //write out elevate-data.xml to the Data dir first by copying it from conf, which we know exists, this way we can test both conf and data configurations createTempDir(); File parent = new File(TEST_HOME(), "conf"); @@ -65,7 +60,7 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 { File elevateDataFile = new File(dataDir, "elevate-data.xml"); FileUtils.copyFile(elevateFile, elevateDataFile); - initCore(config,schema); + initCore("solrconfig-elevate.xml",schema); clearIndex(); assertU(commit()); } @@ -107,39 +102,6 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 { } } - @Test - public void testTrieFieldType() throws Exception { - try { - init("solrconfig.xml", "schema.xml"); - clearIndex(); - assertU(commit()); - assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a" )); - assertU(adoc("id", "2", "text", "YYYY", "str_s", "b" )); - assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c" )); - - assertU(adoc("id", "4", "text", "XXXX XXXX", "str_s", "x" )); - assertU(adoc("id", "5", "text", "YYYY YYYY", "str_s", "y" )); - assertU(adoc("id", "6", "text", "XXXX XXXX", "str_s", "z" )); - assertU(adoc("id", "7", "text", "AAAA", "str_s", "a" )); - assertU(adoc("id", "8", "text", "AAAA", "str_s", "a" )); - assertU(adoc("id", "9", "text", "AAAA AAAA", "str_s", "a" )); - assertU(commit()); - - assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", - CommonParams.FL, "id, score, [elevated]") - ,"//*[@numFound='3']" - ,"//result/doc[1]/int[@name='id'][.='7']" - ,"//result/doc[2]/int[@name='id'][.='8']" - ,"//result/doc[3]/int[@name='id'][.='9']", - "//result/doc[1]/bool[@name='[elevated]'][.='true']", - "//result/doc[2]/bool[@name='[elevated]'][.='false']", - "//result/doc[3]/bool[@name='[elevated]'][.='false']" - ); - } finally{ - delete(); - } - } - @Test public void testInterface() throws Exception { @@ -226,7 +188,7 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 { CommonParams.FL, "id, score, [elevated]") ,"//*[@numFound='1']" ,"//result/doc[1]/str[@name='id'][.='7']", - "//result/doc[1]/bool[@name='[elevated]'][.='true']" + "//result/doc[1]/bool[@name='[elevated]'][.='false']" ); assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate",