Search in sources :

Example 6 with CompositeItem

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

the class WashPhrasesTestCase method testPositive2.

@Test
public void testPositive2() {
    AndItem root = new AndItem();
    root.addItem(new WordItem("a"));
    CompositeItem embedded = new AndItem();
    embedded.addItem(new WordItem("bcd"));
    CompositeItem phrase = new PhraseItem();
    phrase.addItem(new WordItem("def"));
    embedded.addItem(phrase);
    root.addItem(embedded);
    root.addItem(new WordItem("e"));
    assertEquals("AND a (AND bcd def) e", transformQuery(root));
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) AndItem(com.yahoo.prelude.query.AndItem) WordItem(com.yahoo.prelude.query.WordItem) PhraseItem(com.yahoo.prelude.query.PhraseItem) Test(org.junit.Test)

Example 7 with CompositeItem

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

the class WashPhrasesTestCase method testNegative3.

@Test
public void testNegative3() {
    AndItem root = new AndItem();
    root.addItem(new WordItem("a"));
    CompositeItem embedded = new AndItem();
    embedded.addItem(new WordItem("bcd"));
    CompositeItem phrase = new PhraseItem();
    phrase.addItem(new WordItem("def"));
    phrase.addItem(new WordItem("ghi"));
    embedded.addItem(phrase);
    root.addItem(embedded);
    root.addItem(new WordItem("e"));
    assertEquals("AND a (AND bcd \"def ghi\") e", transformQuery(root));
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) AndItem(com.yahoo.prelude.query.AndItem) WordItem(com.yahoo.prelude.query.WordItem) PhraseItem(com.yahoo.prelude.query.PhraseItem) Test(org.junit.Test)

Example 8 with CompositeItem

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

the class PhrasingSearcherTestCase method testTotalPhrasing.

@Test
public void testTotalPhrasing() {
    Searcher searcher = new PhrasingSearcher("src/test/java/com/yahoo/prelude/querytransform/test/test-fsa.fsa");
    Query query = new Query();
    AndItem andItem = new AndItem();
    andItem.addItem(new WordItem("tudor", "someindex"));
    andItem.addItem(new WordItem("vidor", "someindex"));
    query.getModel().getQueryTree().setRoot(andItem);
    new Execution(searcher, Execution.Context.createContextStub()).search(query);
    Item item = ((CompositeItem) query.getModel().getQueryTree().getRoot()).getItem(0);
    assertTrue(item instanceof PhraseItem);
    PhraseItem phrase = (PhraseItem) item;
    assertEquals(2, phrase.getItemCount());
    assertEquals("tudor", phrase.getWordItem(0).getWord());
    assertEquals("vidor", phrase.getWordItem(1).getWord());
    assertEquals("someindex", phrase.getIndexName());
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) OrItem(com.yahoo.prelude.query.OrItem) PhraseItem(com.yahoo.prelude.query.PhraseItem) Item(com.yahoo.prelude.query.Item) AndItem(com.yahoo.prelude.query.AndItem) WordItem(com.yahoo.prelude.query.WordItem) CompositeItem(com.yahoo.prelude.query.CompositeItem) Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) AndItem(com.yahoo.prelude.query.AndItem) Searcher(com.yahoo.search.Searcher) PhrasingSearcher(com.yahoo.prelude.querytransform.PhrasingSearcher) WordItem(com.yahoo.prelude.query.WordItem) PhrasingSearcher(com.yahoo.prelude.querytransform.PhrasingSearcher) PhraseItem(com.yahoo.prelude.query.PhraseItem) Test(org.junit.Test)

Example 9 with CompositeItem

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

the class PhrasingSearcherTestCase method testNoPhrasingIfDifferentIndices.

@Test
public void testNoPhrasingIfDifferentIndices() {
    Searcher searcher = new PhrasingSearcher("src/test/java/com/yahoo/prelude/querytransform/test/test-fsa.fsa");
    Query query = new Query();
    AndItem andItem = new AndItem();
    andItem.addItem(new WordItem("tudor", "someindex"));
    andItem.addItem(new WordItem("vidor", "anotherindex"));
    query.getModel().getQueryTree().setRoot(andItem);
    new Execution(searcher, Execution.Context.createContextStub()).search(query);
    CompositeItem item = (CompositeItem) query.getModel().getQueryTree().getRoot();
    assertTrue(item.getItem(0) instanceof WordItem);
    WordItem word = (WordItem) item.getItem(0);
    assertEquals("tudor", word.getWord());
    assertTrue(item.getItem(1) instanceof WordItem);
    word = (WordItem) item.getItem(1);
    assertEquals("vidor", word.getWord());
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) AndItem(com.yahoo.prelude.query.AndItem) Searcher(com.yahoo.search.Searcher) PhrasingSearcher(com.yahoo.prelude.querytransform.PhrasingSearcher) WordItem(com.yahoo.prelude.query.WordItem) PhrasingSearcher(com.yahoo.prelude.querytransform.PhrasingSearcher) Test(org.junit.Test)

Example 10 with CompositeItem

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

the class PhrasingSearcherTestCase method testPartialPhrasingSuggestOnly.

@Test
public void testPartialPhrasingSuggestOnly() {
    Searcher searcher = new PhrasingSearcher("src/test/java/com/yahoo/prelude/querytransform/test/test-fsa.fsa");
    Query query = new Query("?query=void%20tudor%20vidor%20kanoo&suggestonly=true");
    new Execution(searcher, Execution.Context.createContextStub()).search(query);
    CompositeItem item = (CompositeItem) query.getModel().getQueryTree().getRoot();
    assertEquals("void", ((WordItem) item.getItem(0)).getWord());
    assertEquals("tudor", ((WordItem) item.getItem(1)).getWord());
    assertEquals("vidor", ((WordItem) item.getItem(2)).getWord());
    assertEquals("kanoo", ((WordItem) item.getItem(3)).getWord());
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) Searcher(com.yahoo.search.Searcher) PhrasingSearcher(com.yahoo.prelude.querytransform.PhrasingSearcher) PhrasingSearcher(com.yahoo.prelude.querytransform.PhrasingSearcher) Test(org.junit.Test)

Aggregations

CompositeItem (com.yahoo.prelude.query.CompositeItem)25 AndItem (com.yahoo.prelude.query.AndItem)13 Test (org.junit.Test)13 Item (com.yahoo.prelude.query.Item)12 PhraseItem (com.yahoo.prelude.query.PhraseItem)10 WordItem (com.yahoo.prelude.query.WordItem)10 Query (com.yahoo.search.Query)10 Execution (com.yahoo.search.searchchain.Execution)9 NotItem (com.yahoo.prelude.query.NotItem)6 NullItem (com.yahoo.prelude.query.NullItem)6 OrItem (com.yahoo.prelude.query.OrItem)6 EquivItem (com.yahoo.prelude.query.EquivItem)5 NearItem (com.yahoo.prelude.query.NearItem)5 RankItem (com.yahoo.prelude.query.RankItem)5 SimpleIndexedItem (com.yahoo.prelude.query.SimpleIndexedItem)5 SubstringItem (com.yahoo.prelude.query.SubstringItem)5 PhrasingSearcher (com.yahoo.prelude.querytransform.PhrasingSearcher)4 Searcher (com.yahoo.search.Searcher)4 NonPhrasingSearcher (com.yahoo.prelude.querytransform.NonPhrasingSearcher)3 TermItem (com.yahoo.prelude.query.TermItem)2