|
@@ -27,6 +27,7 @@ import org.apache.lucene.document.StringField;
|
|
|
import org.apache.lucene.document.TextField;
|
|
|
import org.apache.lucene.index.IndexReader;
|
|
|
import org.apache.lucene.index.IndexWriterConfig;
|
|
|
+import org.apache.lucene.index.MultiReader;
|
|
|
import org.apache.lucene.index.RandomIndexWriter;
|
|
|
import org.apache.lucene.index.Term;
|
|
|
import org.apache.lucene.search.similarities.BM25Similarity;
|
|
@@ -50,6 +51,39 @@ import java.util.Arrays;
|
|
|
*/
|
|
|
public class XCombinedFieldQueryTests extends LuceneTestCase {
|
|
|
|
|
|
+ public void testRewrite() throws IOException {
|
|
|
+ IndexReader reader = new MultiReader();
|
|
|
+ IndexSearcher searcher = new IndexSearcher(reader);
|
|
|
+
|
|
|
+ BooleanQuery query = new BooleanQuery.Builder()
|
|
|
+ .add(new XCombinedFieldQuery.Builder()
|
|
|
+ .addField("field1")
|
|
|
+ .addField("field2")
|
|
|
+ .addTerm(new BytesRef("value"))
|
|
|
+ .build(), BooleanClause.Occur.SHOULD)
|
|
|
+ .add(new XCombinedFieldQuery.Builder()
|
|
|
+ .addField("field3")
|
|
|
+ .addField("field4")
|
|
|
+ .addTerm(new BytesRef("value"))
|
|
|
+ .build(), BooleanClause.Occur.SHOULD)
|
|
|
+ .build();
|
|
|
+ assertEquals(query, searcher.rewrite(query));
|
|
|
+
|
|
|
+ query = new BooleanQuery.Builder()
|
|
|
+ .add(new XCombinedFieldQuery.Builder()
|
|
|
+ .addField("field1", 2.0f)
|
|
|
+ .addField("field2")
|
|
|
+ .addTerm(new BytesRef("value"))
|
|
|
+ .build(), BooleanClause.Occur.SHOULD)
|
|
|
+ .add(new XCombinedFieldQuery.Builder()
|
|
|
+ .addField("field1", 1.3f)
|
|
|
+ .addField("field2")
|
|
|
+ .addTerm(new BytesRef("value"))
|
|
|
+ .build(), BooleanClause.Occur.SHOULD)
|
|
|
+ .build();
|
|
|
+ assertEquals(query, searcher.rewrite(query));
|
|
|
+ }
|
|
|
+
|
|
|
public void testNormsDisabled() throws IOException {
|
|
|
Directory dir = newDirectory();
|
|
|
Similarity similarity = randomCompatibleSimilarity();
|