use of com.yahoo.prelude.IndexFacts in project vespa by vespa-engine.
the class LegacyCombinatorTestCase method testRankCombinator.
public void testRankCombinator() {
Query q = new Query("?query.juhu=b&query.juhu.defidx=nalle&query.juhu.operator=rank");
Execution e = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts()));
e.search(q);
assertEquals("nalle:b", q.getModel().getQueryTree().toString());
}
use of com.yahoo.prelude.IndexFacts in project vespa by vespa-engine.
the class LegacyCombinatorTestCase method testReqAndNot.
public void testReqAndNot() {
Query q = new Query("?query.juhu=b&query.juhu.defidx=nalle&query.juhu.operator=not&query.bamse=z&query.bamse.defidx=y");
Execution e = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts()));
e.search(q);
assertEquals("+y:z -nalle:b", q.getModel().getQueryTree().toString());
}
use of com.yahoo.prelude.IndexFacts in project vespa by vespa-engine.
the class LegacyCombinatorTestCase method testMultiPart.
public void testMultiPart() {
Query q = new Query("?query=a&query.juhu=b&query.nalle=c");
Execution e = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts()));
Set<String> items = new HashSet<>();
items.add("a");
items.add("b");
items.add("c");
e.search(q);
// OK, the problem here is we have no way of knowing whether nalle or
// juhu was added first, since we have passed through HashMap instances
// inside the implementation
AndItem root = (AndItem) q.getModel().getQueryTree().getRoot();
Iterator<?> iterator = root.getItemIterator();
while (iterator.hasNext()) {
WordItem word = (WordItem) iterator.next();
if (items.contains(word.stringValue())) {
items.remove(word.stringValue());
} else {
assertFalse("Got unexpected item in query tree: " + word.stringValue(), true);
}
}
assertEquals("Not all expected items found in query.", 0, items.size());
Set<StringPair> nastierItems = new HashSet<>();
nastierItems.add(new StringPair("", "a"));
nastierItems.add(new StringPair("juhu.22[gnuff]", "b"));
nastierItems.add(new StringPair("gnuff[8].name(\"tralala\")", "c"));
q = new Query("?query=a&query.juhu=b&defidx.juhu=juhu.22[gnuff]&query.nalle=c&defidx.nalle=gnuff[8].name(%22tralala%22)");
e = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts()));
e.search(q);
root = (AndItem) q.getModel().getQueryTree().getRoot();
iterator = root.getItemIterator();
while (iterator.hasNext()) {
WordItem word = (WordItem) iterator.next();
StringPair asPair = new StringPair(word.getIndexName(), word.stringValue());
if (nastierItems.contains(asPair)) {
nastierItems.remove(asPair);
} else {
assertFalse("Got unexpected item in query tree: (" + word.getIndexName() + ", " + word.stringValue() + ")", true);
}
}
assertEquals("Not all expected items found in query.", 0, nastierItems.size());
}
Aggregations