use of com.yahoo.prelude.query.CompositeItem in project vespa by vespa-engine.
the class CompositeConverter method itemToForm.
@Override
public DispatchForm itemToForm(Item item, ItemIdMapper itemIdMapper) {
CompositeItem compositeItem = (CompositeItem) item;
DispatchForm form = new DispatchForm(getFormName(item));
for (ListIterator<Item> i = compositeItem.getItemIterator(); i.hasNext(); ) {
form.addChild(i.next());
}
ItemInitializer.initializeForm(form, item, itemIdMapper);
return form;
}
use of com.yahoo.prelude.query.CompositeItem in project vespa by vespa-engine.
the class NonPhrasingSearcherTestCase method testNoNonPhrasingIfSuggestOnly.
@Test
public void testNoNonPhrasingIfSuggestOnly() {
searcher = new NonPhrasingSearcher("src/test/java/com/yahoo/prelude/querytransform/test/test-fsa.fsa");
Query query = new Query("?query=void+tudor+vidor+kanoo&suggestonly=true");
new Execution(searcher, Execution.Context.createContextStub()).search(query);
CompositeItem item = (CompositeItem) query.getModel().getQueryTree().getRoot();
assertEquals(4, item.getItemCount());
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());
}
use of com.yahoo.prelude.query.CompositeItem in project vespa by vespa-engine.
the class PhrasingSearcherTestCase method testPartialPhrasing.
@Test
public void testPartialPhrasing() {
Searcher searcher = new PhrasingSearcher("src/test/java/com/yahoo/prelude/querytransform/test/test-fsa.fsa");
Query query = new Query("?query=void%20tudor%20vidor%20kanoo");
new Execution(searcher, Execution.Context.createContextStub()).search(query);
CompositeItem item = (CompositeItem) query.getModel().getQueryTree().getRoot();
assertEquals("void", ((WordItem) item.getItem(0)).getWord());
assertEquals("kanoo", ((WordItem) item.getItem(2)).getWord());
PhraseItem phrase = (PhraseItem) item.getItem(1);
assertEquals(2, phrase.getItemCount());
assertEquals("tudor", phrase.getWordItem(0).getWord());
assertEquals("vidor", phrase.getWordItem(1).getWord());
}
use of com.yahoo.prelude.query.CompositeItem in project vespa by vespa-engine.
the class InputCheckingSearcher method checkPhrases.
private void checkPhrases(Item queryItem) {
if (queryItem instanceof PhraseItem) {
PhraseItem phrase = (PhraseItem) queryItem;
repeatedConsecutiveTermsInPhraseCheck(phrase);
repeatedTermsInPhraseCheck(phrase);
} else if (queryItem instanceof CompositeItem) {
CompositeItem asComposite = (CompositeItem) queryItem;
for (ListIterator<Item> i = asComposite.getItemIterator(); i.hasNext(); ) {
checkPhrases(i.next());
}
}
}
use of com.yahoo.prelude.query.CompositeItem in project vespa by vespa-engine.
the class InputCheckingSearcher method countSingleCharacterUserTerms.
private int countSingleCharacterUserTerms(Item queryItem) {
if (queryItem instanceof CompositeItem) {
int sum = 0;
CompositeItem asComposite = (CompositeItem) queryItem;
for (ListIterator<Item> i = asComposite.getItemIterator(); i.hasNext(); ) {
sum += countSingleCharacterUserTerms(i.next());
}
return sum;
} else if (queryItem instanceof WordItem) {
WordItem word = (WordItem) queryItem;
return (word.isFromQuery() && word.stringValue().length() == 1) ? 1 : 0;
} else {
return 0;
}
}
Aggregations