diff options
Diffstat (limited to 'container-search')
4 files changed, 27 insertions, 49 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java b/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java index 350d2094834..5c56379efc0 100644 --- a/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java @@ -106,13 +106,6 @@ public class JuniperSearcher extends Searcher { Object searchDefinitionField = hit.getField(MAGIC_FIELD); if (searchDefinitionField == null) continue; - // TODO: Loop using callback (see below) - for (String fieldName : hit.fields().keySet()) { - Index index = indexFacts.getIndex(fieldName, searchDefinitionField.toString()); - if (index.getDynamicSummary() || index.getHighlightSummary()) - insertTags(hit.buildHitField(fieldName, true, true), bolding, index.getDynamicSummary()); - } - /* for (Index index : indexFacts.getIndexes(searchDefinitionField.toString())) { if (index.getDynamicSummary() || index.getHighlightSummary()) { HitField fieldValue = hit.buildHitField(index.getName(), true, true); @@ -120,7 +113,6 @@ public class JuniperSearcher extends Searcher { insertTags(fieldValue, bolding, index.getDynamicSummary()); } } - */ } } diff --git a/container-search/src/main/java/com/yahoo/prelude/searcher/QuotingSearcher.java b/container-search/src/main/java/com/yahoo/prelude/searcher/QuotingSearcher.java index 3f7b7c52f82..5dcc533fb1f 100644 --- a/container-search/src/main/java/com/yahoo/prelude/searcher/QuotingSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/searcher/QuotingSearcher.java @@ -113,22 +113,6 @@ public class QuotingSearcher extends Searcher { } private void quoteFields(FastHit hit, QuoteTable translations) { - // TODO: Iterate using callback (see below) - for (Iterator<?> i = ((Set<?>) hit.fields().keySet()).iterator(); i.hasNext(); ) { - String propertyName = (String) i.next(); - Object entry = hit.getField(propertyName); - if (entry == null) { - continue; - } - Class<? extends Object> propertyType = entry.getClass(); - if (propertyType.equals(HitField.class)) { - quoteField((HitField) entry, translations); - } else if (propertyType.equals(String.class)) { - quoteField(hit, propertyName, (String)entry, translations); - } - } - - /* hit.forEachField((fieldName, fieldValue) -> { if (fieldValue != null) { Class<?> fieldType = fieldValue.getClass(); @@ -138,7 +122,6 @@ public class QuotingSearcher extends Searcher { quoteField(hit, fieldName, (String) fieldValue, translations); } }); - */ } private void quoteField(Hit hit, String fieldname, String toQuote, QuoteTable translations) { diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java index 94fd9549939..fe3d48ccded 100644 --- a/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java +++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java @@ -9,13 +9,10 @@ import com.yahoo.component.chain.model.ChainedComponentModel; import com.yahoo.search.Searcher; import com.yahoo.search.searchchain.model.federation.FederationSearcherModel; import com.yahoo.search.searchchain.model.federation.FederationSearcherModel.TargetSpec; +import org.apache.commons.collections.CollectionUtils; + +import java.util.*; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; /** * Defines the searcher models used in the vespa and native search chains, except for federation. @@ -26,6 +23,8 @@ import java.util.Set; public class VespaSearchers { public static final Collection<ChainedComponentModel> vespaSearcherModels = toSearcherModels( + com.yahoo.prelude.querytransform.IndexCombinatorSearcher.class, + //com.yahoo.prelude.querytransform.LocalitySearcher.class, com.yahoo.prelude.querytransform.PhrasingSearcher.class, com.yahoo.prelude.searcher.FieldCollapsingSearcher.class, com.yahoo.search.yql.MinimalQueryInserter.class, @@ -60,8 +59,8 @@ public class VespaSearchers { private static FederationSearcherModel federationSearcherModel() { return new FederationSearcherModel(new ComponentSpecification("federation"), - Dependencies.emptyDependencies(), - Collections.<TargetSpec>emptyList(), true); + Dependencies.emptyDependencies(), + Collections.<TargetSpec>emptyList(), true); } private static boolean allAdded(Collection<ChainedComponentModel> searcherModels, Set<ComponentId> componentIds) { @@ -83,4 +82,3 @@ public class VespaSearchers { return searcherModels; } } - diff --git a/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java index 7761bca2773..4987f9902ce 100644 --- a/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java @@ -17,15 +17,16 @@ import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.prelude.fastsearch.FastHit; import com.yahoo.prelude.searcher.BlendingSearcher; +import com.yahoo.prelude.searcher.DocumentSourceSearcher; import com.yahoo.prelude.searcher.FillSearcher; import com.yahoo.search.Searcher; import com.yahoo.search.federation.FederationSearcher; +import com.yahoo.search.federation.selection.TargetSelector; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.SearchChain; import com.yahoo.search.searchchain.SearchChainRegistry; -import com.yahoo.search.searchchain.testutil.DocumentSourceSearcher; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -39,6 +40,8 @@ import static org.junit.Assert.assertTrue; * @author Bob Travis * @author bratseth */ +// The SuppressWarnings is to shut up the compiler about using +// deprecated FastHit constructor in the tests. @SuppressWarnings({ "rawtypes" }) public class BlendingSearcherTestCase { @@ -121,6 +124,7 @@ public class BlendingSearcherTestCase { @Test public void testitTwoPhase() { + DocumentSourceSearcher chain1 = new DocumentSourceSearcher(); DocumentSourceSearcher chain2 = new DocumentSourceSearcher(); DocumentSourceSearcher chain3 = new DocumentSourceSearcher(); @@ -135,19 +139,19 @@ public class BlendingSearcherTestCase { r1.hits().add(new Hit("http://host1.com", 101){{setSource("one");}}); r1.hits().add(new Hit("http://host2.com", 102){{setSource("one");}}); r1.hits().add(new Hit("http://host3.com", 103){{setSource("one");}}); - chain1.addResult(q, r1); + chain1.addResultSet(q, r1); r2.setTotalHitCount(17); r2.hits().add(new Hit("http://host1.com", 101){{setSource("two");}}); r2.hits().add(new Hit("http://host2.com", 102){{setSource("two");}}); r2.hits().add(new Hit("http://host4.com", 104){{setSource("two");}}); - chain2.addResult(q, r2); + chain2.addResultSet(q, r2); r3.setTotalHitCount(37); r3.hits().add(new Hit("http://host5.com", 100){{setSource("three");}}); r3.hits().add(new Hit("http://host6.com", 106){{setSource("three");}}); r3.hits().add(new Hit("http://host7.com", 105){{setSource("three");}}); - chain3.addResult(q, r3); + chain3.addResultSet(q, r3); BlendingSearcherWrapper blender1 = new BlendingSearcherWrapper(); blender1.addChained(chain1, "one"); @@ -211,10 +215,10 @@ public class BlendingSearcherTestCase { r1.setTotalHitCount(1); r1.hits().add(new FastHit("http://host1.com/", 101)); - chain1.addResult(q, r1); + chain1.addResultSet(q, r1); r2.hits().add(new FastHit("http://host1.com/", 102)); r2.setTotalHitCount(1); - chain2.addResult(q, r2); + chain2.addResultSet(q, r2); BlendingSearcherWrapper blender = new BlendingSearcherWrapper("uri"); blender.addChained(new FillSearcher(chain1), "a"); @@ -235,10 +239,10 @@ public class BlendingSearcherTestCase { Result r2 = new Result(q, ErrorMessage.createRequestTooLarge(null)); r1.setTotalHitCount(0); - chain1.addResult(q, r1); + chain1.addResultSet(q, r1); r2.hits().add(new FastHit("http://host1.com/", 102)); r2.setTotalHitCount(1); - chain2.addResult(q, r2); + chain2.addResultSet(q, r2); BlendingSearcherWrapper blender = new BlendingSearcherWrapper(); blender.addChained(new FillSearcher(chain1), "a"); @@ -284,7 +288,7 @@ public class BlendingSearcherTestCase { r1.hits().add(r1h1); r1.hits().add(r1h2); r1.hits().add(r1h3); - chain1.addResult(q, r1); + chain1.addResultSet(q, r1); r2.setTotalHitCount(3); Hit r2h1 = new Hit("http://host1.com/relevancy201", 201); @@ -299,7 +303,7 @@ public class BlendingSearcherTestCase { r2.hits().add(r2h1); r2.hits().add(r2h2); r2.hits().add(r2h3); - chain2.addResult(q, r2); + chain2.addResultSet(q, r2); BlendingSearcherWrapper blender = new BlendingSearcherWrapper(); blender.addChained(new FillSearcher(chain1), "chainedone"); @@ -339,7 +343,7 @@ public class BlendingSearcherTestCase { r1.hits().add(r1h1); r1.hits().add(r1h2); r1.hits().add(r1h3); - chain1.addResult(q, r1); + chain1.addResultSet(q, r1); r2.setTotalHitCount(3); Hit r2h1 = new Hit("http://host1.com/relevancy201", 201); @@ -351,7 +355,7 @@ public class BlendingSearcherTestCase { r2.hits().add(r2h1); r2.hits().add(r2h2); r2.hits().add(r2h3); - chain2.addResult(q, r2); + chain2.addResultSet(q, r2); BlendingSearcherWrapper blender = new BlendingSearcherWrapper(); blender.addChained(chain1, "chainedone"); @@ -377,7 +381,7 @@ public class BlendingSearcherTestCase { r1.setTotalHitCount(1); Hit r1h1 = new Hit("http://first/relevancy100", 200); r1.hits().add(r1h1); - first.addResult(query, r1); + first.addResultSet(query, r1); Result r2 = new Result(query); r2.setTotalHitCount(2); @@ -385,7 +389,7 @@ public class BlendingSearcherTestCase { Hit r2h2 = new Hit("http://second/relevancy100", 100); r2.hits().add(r2h1); r2.hits().add(r2h2); - second.addResult(query, r2); + second.addResultSet(query, r2); BlendingSearcherWrapper blender = new BlendingSearcherWrapper(); blender.addChained(new FillSearcher(first), "first"); @@ -475,12 +479,13 @@ public class BlendingSearcherTestCase { Query query = new Query("/search?query=banana&search=first,nonesuch,second"); Result result = new Execution(searcher, Execution.Context.createContextStub(new IndexFacts())).search(query); - assertEquals(4, result.getHitCount()); + assertEquals(3, result.getConcreteHitCount()); assertEquals(300.0, result.hits().get(1).getRelevance().getScore(), delta); assertEquals(200.0, result.hits().get(2).getRelevance().getScore(), delta); assertEquals(100.0, result.hits().get(3).getRelevance().getScore(), delta); assertNotNull(result.hits().getError()); ErrorMessage e = result.hits().getError(); + //TODO: Do not depend on sources order assertEquals("Could not resolve source ref 'nonesuch'. Valid source refs are first, second.", e.getDetailedMessage()); } |