use of com.yahoo.search.searchchain.Execution in project vespa by vespa-engine.
the class NonPhrasingSearcherTestCase method testMultipleWordNonPhrasing.
@Test
public void testMultipleWordNonPhrasing() {
searcher = new NonPhrasingSearcher("src/test/java/com/yahoo/prelude/querytransform/test/test-fsa.fsa");
Query query = new Query("?query=void+tudor+vidor+kanoo");
new Execution(searcher, Execution.Context.createContextStub()).search(query);
CompositeItem item = (CompositeItem) query.getModel().getQueryTree().getRoot();
assertEquals(2, item.getItemCount());
assertEquals("void", ((WordItem) item.getItem(0)).getWord());
assertEquals("kanoo", ((WordItem) item.getItem(1)).getWord());
}
use of com.yahoo.search.searchchain.Execution in project vespa by vespa-engine.
the class VespaIntegrationTestCase method testIt.
// TODO: Setup the answering vespa searcher from this test....
public void testIt() {
if (System.currentTimeMillis() > 0)
return;
Chain<Searcher> chain = new Chain<>(new VespaSearcher("test", "example.yahoo.com", 19010, ""));
Result result = new Execution(chain, Execution.Context.createContextStub()).search(new Query("?query=test"));
assertEquals(23, result.hits().size());
}
use of com.yahoo.search.searchchain.Execution in project vespa by vespa-engine.
the class GroupingExecutorTestCase method testIllegalQuery.
@Test
public void testIllegalQuery() {
Execution exc = newExecution(new GroupingExecutor());
Query query = new Query();
NotItem notItem = new NotItem();
notItem.addNegativeItem(new WordItem("negative"));
query.getModel().getQueryTree().setRoot(notItem);
Result result = exc.search(query);
com.yahoo.search.result.ErrorMessage message = result.hits().getError();
assertNotNull("Got error", message);
assertEquals("Illegal query", message.getMessage());
assertEquals("Can not search for only negative items", message.getDetailedMessage());
assertEquals(3, message.getCode());
}
use of com.yahoo.search.searchchain.Execution in project vespa by vespa-engine.
the class GroupingExecutorTestCase method requireThatHitsAreFilledWithCorrectSummary.
@Test
public void requireThatHitsAreFilledWithCorrectSummary() {
Query query = newQuery();
GroupingRequest req = GroupingRequest.newInstance(query);
req.setRootOperation(GroupingOperation.fromString("all(group(foo) each(each(output(summary(bar))) as(bar) " + " each(output(summary(baz))) as(baz)))"));
Grouping pass0A = new Grouping(0);
pass0A.setRoot(new com.yahoo.searchlib.aggregation.Group().addChild(new com.yahoo.searchlib.aggregation.Group().setId(new StringResultNode("foo")).addAggregationResult(new HitsAggregationResult(1, "bar"))));
Grouping pass0B = new Grouping(1);
pass0B.setRoot(new com.yahoo.searchlib.aggregation.Group().addChild(new com.yahoo.searchlib.aggregation.Group().setId(new StringResultNode("foo")).addAggregationResult(new HitsAggregationResult(1, "baz"))));
GlobalId gid1 = new GlobalId((new DocumentId("doc:test:1")).getGlobalId());
GlobalId gid2 = new GlobalId((new DocumentId("doc:test:2")).getGlobalId());
Grouping pass1A = new Grouping(0);
pass1A.setRoot(new com.yahoo.searchlib.aggregation.Group().addChild(new com.yahoo.searchlib.aggregation.Group().setId(new StringResultNode("foo")).addAggregationResult(new HitsAggregationResult(1, "bar").addHit(new com.yahoo.searchlib.aggregation.FS4Hit(1, gid1, 3)))));
Grouping pass1B = new Grouping(1);
pass1B.setRoot(new com.yahoo.searchlib.aggregation.Group().addChild(new com.yahoo.searchlib.aggregation.Group().setId(new StringResultNode("foo")).addAggregationResult(new HitsAggregationResult(1, "baz").addHit(new com.yahoo.searchlib.aggregation.FS4Hit(4, gid2, 6)))));
SummaryMapper sm = new SummaryMapper();
Execution exec = newExecution(new GroupingExecutor(), new ResultProvider(Arrays.asList(new GroupingListHit(Arrays.asList(pass0A, pass0B), null), new GroupingListHit(Arrays.asList(pass1A, pass1B), null))), sm);
exec.fill(exec.search(query), "default");
assertEquals(2, sm.hitsBySummary.size());
List<Hit> lst = sm.hitsBySummary.get("bar");
assertNotNull(lst);
assertEquals(1, lst.size());
Hit hit = lst.get(0);
assertTrue(hit instanceof FastHit);
assertEquals(1, ((FastHit) hit).getPartId());
assertEquals(gid1, ((FastHit) hit).getGlobalId());
assertNotNull(lst = sm.hitsBySummary.get("baz"));
assertNotNull(lst);
assertEquals(1, lst.size());
hit = lst.get(0);
assertTrue(hit instanceof FastHit);
assertEquals(4, ((FastHit) hit).getPartId());
assertEquals(gid2, ((FastHit) hit).getGlobalId());
}
use of com.yahoo.search.searchchain.Execution in project vespa by vespa-engine.
the class GroupingExecutorTestCase method requireThatHitsAreAttachedToCorrectQuery.
@Test
public void requireThatHitsAreAttachedToCorrectQuery() {
Query queryA = newQuery();
GroupingRequest req = GroupingRequest.newInstance(queryA);
req.setRootOperation(GroupingOperation.fromString("all(group(foo) each(each(output(summary(bar)))))"));
Grouping grp = new Grouping(0);
grp.setRoot(new com.yahoo.searchlib.aggregation.Group().addChild(new com.yahoo.searchlib.aggregation.Group().setId(new StringResultNode("foo")).addAggregationResult(new HitsAggregationResult(1, "bar"))));
GroupingListHit pass0 = new GroupingListHit(Arrays.asList(grp), null);
GlobalId gid = new GlobalId((new DocumentId("doc:test:1")).getGlobalId());
grp = new Grouping(0);
grp.setRoot(new com.yahoo.searchlib.aggregation.Group().addChild(new com.yahoo.searchlib.aggregation.Group().setId(new StringResultNode("foo")).addAggregationResult(new HitsAggregationResult(1, "bar").addHit(new com.yahoo.searchlib.aggregation.FS4Hit(4, gid, 6)))));
GroupingListHit pass1 = new GroupingListHit(Arrays.asList(grp), null);
Query queryB = newQuery();
/**
* required by {@link GroupingListHit#getSearchQuery()}
*/
pass1.setQuery(queryB);
QueryMapper qm = new QueryMapper();
Execution exec = newExecution(new GroupingExecutor(), new ResultProvider(Arrays.asList(pass0, pass1)), qm);
exec.fill(exec.search(queryA));
assertEquals(1, qm.hitsByQuery.size());
assertTrue(qm.hitsByQuery.containsKey(queryB));
}
Aggregations