Search in sources :

Example 91 with WordItem

use of com.yahoo.prelude.query.WordItem in project vespa by vespa-engine.

the class LegacyCombinatorTestCase method testNewAndOld.

public void testNewAndOld() {
    Query q = new Query("?query.juhu=b&defidx.juhu=nalle&query.bamse=z&query.bamse.defidx=y");
    Execution e = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts()));
    Set<StringPair> nastierItems = new HashSet<>();
    nastierItems.add(new StringPair("nalle", "b"));
    nastierItems.add(new StringPair("y", "z"));
    e.search(q);
    AndItem root = (AndItem) q.getModel().getQueryTree().getRoot();
    Iterator<?> 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());
}
Also used : Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) IndexFacts(com.yahoo.prelude.IndexFacts) AndItem(com.yahoo.prelude.query.AndItem) WordItem(com.yahoo.prelude.query.WordItem) HashSet(java.util.HashSet)

Example 92 with WordItem

use of com.yahoo.prelude.query.WordItem 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());
}
Also used : Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) IndexFacts(com.yahoo.prelude.IndexFacts) AndItem(com.yahoo.prelude.query.AndItem) WordItem(com.yahoo.prelude.query.WordItem) HashSet(java.util.HashSet)

Example 93 with WordItem

use of com.yahoo.prelude.query.WordItem in project vespa by vespa-engine.

the class NGramSearcherTestCase method assertExtraTermInfo.

private void assertExtraTermInfo(int weight, String origin, Item g) {
    WordItem gram = (WordItem) g;
    assertEquals(weight, gram.getWeight());
    assertEquals(origin, gram.getOrigin().getValue());
    assertTrue(gram.isProtected());
    assertFalse(gram.isFromQuery());
}
Also used : WordItem(com.yahoo.prelude.query.WordItem)

Aggregations

WordItem (com.yahoo.prelude.query.WordItem)93 Test (org.junit.Test)76 AndItem (com.yahoo.prelude.query.AndItem)45 PhraseItem (com.yahoo.prelude.query.PhraseItem)31 Query (com.yahoo.search.Query)25 PhraseSegmentItem (com.yahoo.prelude.query.PhraseSegmentItem)20 CompositeItem (com.yahoo.prelude.query.CompositeItem)18 Item (com.yahoo.prelude.query.Item)17 MarkerWordItem (com.yahoo.prelude.query.MarkerWordItem)16 NotItem (com.yahoo.prelude.query.NotItem)16 OrItem (com.yahoo.prelude.query.OrItem)13 ByteBuffer (java.nio.ByteBuffer)11 PrefixItem (com.yahoo.prelude.query.PrefixItem)10 SubstringItem (com.yahoo.prelude.query.SubstringItem)10 SuffixItem (com.yahoo.prelude.query.SuffixItem)10 Execution (com.yahoo.search.searchchain.Execution)10 RankItem (com.yahoo.prelude.query.RankItem)9 PhraseMatcher (com.yahoo.prelude.querytransform.PhraseMatcher)9 IntItem (com.yahoo.prelude.query.IntItem)8 WeakAndItem (com.yahoo.prelude.query.WeakAndItem)7