mirror of https://github.com/apache/lucene.git
SOLR-1520: revert r1214937 as it breaks several tests
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1214997 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
fde5bdc871
commit
4d75ef3d42
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
</query>
|
||||
|
||||
<query text="AAAA">
|
||||
<doc id="7" />
|
||||
<doc id="7.0" />
|
||||
</query>
|
||||
|
||||
|
||||
|
|
|
@ -425,20 +425,6 @@
|
|||
</arr>
|
||||
</requestHandler>
|
||||
|
||||
<!-- test elevation -->
|
||||
<searchComponent name="elevate" class="org.apache.solr.handler.component.QueryElevationComponent" >
|
||||
<str name="queryFieldType">string</str>
|
||||
<str name="config-file">${elevate.file:elevate.xml}</str>
|
||||
</searchComponent>
|
||||
|
||||
<requestHandler name="/elevate" class="org.apache.solr.handler.component.SearchHandler">
|
||||
<lst name="defaults">
|
||||
<str name="echoParams">explicit</str>
|
||||
</lst>
|
||||
<arr name="last-components">
|
||||
<str>elevate</str>
|
||||
</arr>
|
||||
</requestHandler>
|
||||
|
||||
<searchComponent name="tvComponent" class="org.apache.solr.handler.component.TermVectorComponent"/>
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue