mirror of https://github.com/apache/lucene.git
SOLR-2824: don't rewrite join subquery
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1337955 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7e511f80d1
commit
015d8601c8
|
@ -84,11 +84,8 @@ class JoinQuery extends Query {
|
|||
|
||||
@Override
|
||||
public Query rewrite(IndexReader reader) throws IOException {
|
||||
Query newQ = q.rewrite(reader);
|
||||
if (newQ == q) return this;
|
||||
JoinQuery nq = (JoinQuery)this.clone();
|
||||
nq.q = newQ;
|
||||
return nq;
|
||||
// don't rewrite the subQuery
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -139,6 +139,17 @@ public abstract class MultiCoreExampleTestBase extends SolrExampleTestBase
|
|||
catch( Exception ex ) {}
|
||||
resetExceptionIgnores();
|
||||
|
||||
// in core0
|
||||
doc = new SolrInputDocument();
|
||||
doc.setField( "id", "BBB1" );
|
||||
doc.setField( "name", "AAA1" );
|
||||
doc.setField( "type", "BBB" );
|
||||
doc.setField( "core0", "AAA1" );
|
||||
|
||||
up.clear();
|
||||
up.add( doc );
|
||||
up.process( getSolrCore0() );
|
||||
|
||||
// now Make sure AAA is in 0 and BBB in 1
|
||||
SolrQuery q = new SolrQuery();
|
||||
QueryRequest r = new QueryRequest( q );
|
||||
|
@ -155,9 +166,15 @@ public abstract class MultiCoreExampleTestBase extends SolrExampleTestBase
|
|||
|
||||
// cross-core join
|
||||
assertEquals( 0, getSolrCore0().query( new SolrQuery( "{!join from=type to=name}*:*" ) ).getResults().size() ); // normal join
|
||||
assertEquals( 1, getSolrCore0().query( new SolrQuery( "{!join from=type to=name fromIndex=core1}id:BBB" ) ).getResults().size() );
|
||||
assertEquals( 2, getSolrCore0().query( new SolrQuery( "{!join from=type to=name fromIndex=core1}id:BBB" ) ).getResults().size() );
|
||||
assertEquals( 1, getSolrCore1().query( new SolrQuery( "{!join from=type to=name fromIndex=core0}id:AAA" ) ).getResults().size() );
|
||||
|
||||
// test that no rewrite happens in core0 (if it does, it will rewrite to BBB1 and nothing will be found in core1)
|
||||
assertEquals( 2, getSolrCore0().query( new SolrQuery( "{!join from=type to=name fromIndex=core1}id:BB~" ) ).getResults().size() );
|
||||
|
||||
// test that query is parsed in the fromCore - TODO
|
||||
// assertEquals( 2, getSolrCore0().query( new SolrQuery( "{!join from=type to=name fromIndex=core1}core1:yup" ) ).getResults().size() );
|
||||
|
||||
|
||||
// Now test reloading it should have a newer open time
|
||||
String name = "core0";
|
||||
|
|
Loading…
Reference in New Issue