Search in sources :

Example 1 with RecallSearcher

use of com.yahoo.prelude.querytransform.RecallSearcher in project vespa by vespa-engine.

the class RecallSearcherTestCase method assertQueryTree.

private static void assertQueryTree(String query, List<String> ranked, List<String> unranked) {
    RecallSearcher searcher = new RecallSearcher();
    Query obj = new Query(query);
    Result result = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts())).search(obj);
    if (result.hits().getError() != null) {
        fail(result.hits().getError().toString());
    }
    List<String> myRanked = new ArrayList<>(ranked);
    List<String> myUnranked = new ArrayList<>(unranked);
    Stack<Item> stack = new Stack<>();
    stack.push(obj.getModel().getQueryTree().getRoot());
    while (!stack.isEmpty()) {
        Item item = stack.pop();
        if (item instanceof WordItem) {
            String word = ((WordItem) item).getWord();
            if (item.isRanked()) {
                int idx = myRanked.indexOf(word);
                if (idx < 0) {
                    fail("Term '" + word + "' not expected as ranked term.");
                }
                myRanked.remove(idx);
            } else {
                int idx = myUnranked.indexOf(word);
                if (idx < 0) {
                    fail("Term '" + word + "' not expected as unranked term.");
                }
                myUnranked.remove(idx);
            }
        }
        if (item instanceof CompositeItem) {
            CompositeItem lst = (CompositeItem) item;
            for (Iterator<?> it = lst.getItemIterator(); it.hasNext(); ) {
                stack.push((Item) it.next());
            }
        }
    }
    if (!myRanked.isEmpty()) {
        fail("Ranked terms " + myRanked + " not found.");
    }
    if (!myUnranked.isEmpty()) {
        fail("Unranked terms " + myUnranked + " not found.");
    }
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) Query(com.yahoo.search.Query) IndexFacts(com.yahoo.prelude.IndexFacts) RecallSearcher(com.yahoo.prelude.querytransform.RecallSearcher) ArrayList(java.util.ArrayList) Result(com.yahoo.search.Result) Stack(java.util.Stack) CompositeItem(com.yahoo.prelude.query.CompositeItem) NullItem(com.yahoo.prelude.query.NullItem) Item(com.yahoo.prelude.query.Item) WordItem(com.yahoo.prelude.query.WordItem) Execution(com.yahoo.search.searchchain.Execution) WordItem(com.yahoo.prelude.query.WordItem)

Example 2 with RecallSearcher

use of com.yahoo.prelude.querytransform.RecallSearcher in project vespa by vespa-engine.

the class RecallSearcherTestCase method testDenyRankItems.

@Test
public void testDenyRankItems() {
    RecallSearcher searcher = new RecallSearcher();
    Query query = new Query("?recall=foo");
    Result result = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts())).search(query);
    assertNotNull(result.hits().getError());
}
Also used : Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) IndexFacts(com.yahoo.prelude.IndexFacts) RecallSearcher(com.yahoo.prelude.querytransform.RecallSearcher) Result(com.yahoo.search.Result) Test(org.junit.Test)

Example 3 with RecallSearcher

use of com.yahoo.prelude.querytransform.RecallSearcher in project vespa by vespa-engine.

the class RecallSearcherTestCase method testIgnoreEmptyProperty.

@Test
public void testIgnoreEmptyProperty() {
    RecallSearcher searcher = new RecallSearcher();
    Query query = new Query();
    Result result = new Execution(searcher, Execution.Context.createContextStub()).search(query);
    assertNull(result.hits().getError());
    assertTrue(query.getModel().getQueryTree().getRoot() instanceof NullItem);
}
Also used : Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) RecallSearcher(com.yahoo.prelude.querytransform.RecallSearcher) NullItem(com.yahoo.prelude.query.NullItem) Result(com.yahoo.search.Result) Test(org.junit.Test)

Aggregations

RecallSearcher (com.yahoo.prelude.querytransform.RecallSearcher)3 Query (com.yahoo.search.Query)3 Result (com.yahoo.search.Result)3 Execution (com.yahoo.search.searchchain.Execution)3 IndexFacts (com.yahoo.prelude.IndexFacts)2 NullItem (com.yahoo.prelude.query.NullItem)2 Test (org.junit.Test)2 CompositeItem (com.yahoo.prelude.query.CompositeItem)1 Item (com.yahoo.prelude.query.Item)1 WordItem (com.yahoo.prelude.query.WordItem)1 ArrayList (java.util.ArrayList)1 Stack (java.util.Stack)1