diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-10-07 12:54:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-07 12:54:44 +0200 |
commit | de3a914eb138ae8b6892e5aa7e0008c10cf667e7 (patch) | |
tree | 2407b63720681c045c084d9e5fa9636c5399734a | |
parent | 36d28c100f03ab1f5a82d3cbe6f5f8cf40a0a519 (diff) | |
parent | dedf5f2f6cf5c4ee2b6b9e214bc445d4c4639869 (diff) |
Merge pull request #7226 from vespa-engine/revert-7225-balder/limit-selection-by-documenttype
Revert "Limit document selection per cluster by the document type of the clus…"
6 files changed, 35 insertions, 53 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java index aa04f6ca20b..116db906755 100644 --- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java @@ -216,16 +216,11 @@ public class ClusterSearcher extends Searcher { CacheParams cacheParams, LegacyEmulationConfig emulConfig, SummaryParameters docSumParams, - DocumentdbInfoConfig documentdbInfoConfig) - { - if (searchClusterConfig.searchdef().size() != 1) { - throw new IllegalArgumentException("Search clusters in streaming search shall only contain a single searchdefinition : " + searchClusterConfig.searchdef()); - } + DocumentdbInfoConfig documentdbInfoConfig) { ClusterParams clusterParams = makeClusterParams(searchclusterIndex, emulConfig, 0); VdsStreamingSearcher searcher = (VdsStreamingSearcher) VespaBackEndSearcher .getSearcher("com.yahoo.vespa.streamingvisitors.VdsStreamingSearcher"); searcher.setSearchClusterConfigId(searchClusterConfig.rankprofiles().configid()); - searcher.setDocumentType(searchClusterConfig.searchdef(0)); searcher.setStorageClusterRouteSpec(searchClusterConfig.storagecluster().routespec()); searcher.init(docSumParams, clusterParams, cacheParams, documentdbInfoConfig); return searcher; diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcher.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcher.java index a6e4ddaafbc..53c170301fc 100644 --- a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcher.java +++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcher.java @@ -56,18 +56,14 @@ public class VdsStreamingSearcher extends VespaBackEndSearcher { private Route route; /** The configId used to access the searchcluster. */ private String searchClusterConfigId = null; - private String documentType; /** The route to the storage cluster. */ private String storageClusterRouteSpec = null; - private String getSearchClusterConfigId() { return searchClusterConfigId; } - private String getStorageClusterRouteSpec() { return storageClusterRouteSpec; } + String getSearchClusterConfigId() { return searchClusterConfigId; } + String getStorageClusterRouteSpec() { return storageClusterRouteSpec; } public final void setSearchClusterConfigId(String clusterName) { this.searchClusterConfigId = clusterName; } - public final void setDocumentType(String documentType) { - this.documentType = documentType; - } public final void setStorageClusterRouteSpec(String storageClusterRouteSpec) { this.storageClusterRouteSpec = storageClusterRouteSpec; @@ -75,8 +71,8 @@ public class VdsStreamingSearcher extends VespaBackEndSearcher { private static class VdsVisitorFactory implements VisitorFactory { @Override - public Visitor createVisitor(Query query, String searchCluster, Route route, String documentType) { - return new VdsVisitor(query, searchCluster, route, documentType); + public Visitor createVisitor(Query query, String searchCluster, Route route) { + return new VdsVisitor(query, searchCluster, route); } } @@ -131,8 +127,8 @@ public class VdsStreamingSearcher extends VespaBackEndSearcher { "only one of these query parameters to be set: streaming.userid, streaming.groupname, " + "streaming.selection")); } - query.trace("Routing to search cluster " + getSearchClusterConfigId() + " and document type " + documentType, 4); - Visitor visitor = visitorFactory.createVisitor(query, getSearchClusterConfigId(), route, documentType); + query.trace("Routing to search cluster " + getSearchClusterConfigId(), 4); + Visitor visitor = visitorFactory.createVisitor(query, getSearchClusterConfigId(), route); try { visitor.doSearch(); } catch (ParseException e) { diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java index ded59413411..27da8c0cf9b 100644 --- a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java +++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java @@ -105,16 +105,16 @@ class VdsVisitor extends VisitorDataHandler implements Visitor { } } - public VdsVisitor(Query query, String searchCluster, Route route, String documentType) { - this(query, searchCluster, route, documentType, new MessageBusVisitorSessionFactory()); + public VdsVisitor(Query query, String searchCluster, Route route) { + this.query = query; + visitorSessionFactory = new MessageBusVisitorSessionFactory(); + setVisitorParameters(searchCluster, route); } - public VdsVisitor(Query query, String searchCluster, Route route, - String documentType, VisitorSessionFactory visitorSessionFactory) - { + public VdsVisitor(Query query, String searchCluster, Route route, VisitorSessionFactory visitorSessionFactory) { this.query = query; this.visitorSessionFactory = visitorSessionFactory; - setVisitorParameters(searchCluster, route, documentType); + setVisitorParameters(searchCluster, route); } private static int inferSessionTraceLevel(Query query) { @@ -127,14 +127,13 @@ class VdsVisitor extends VisitorDataHandler implements Visitor { return Math.max(query.getTraceLevel(), implicitLevel); } - private void setVisitorParameters(String searchCluster, Route route, String documentType) { - String limitDocumentType = documentType + " and "; + private void setVisitorParameters(String searchCluster, Route route) { if (query.properties().getString(streamingUserid) != null) { - params.setDocumentSelection(limitDocumentType + "id.user==" + query.properties().getString(streamingUserid)); + params.setDocumentSelection("id.user==" + query.properties().getString(streamingUserid)); } else if (query.properties().getString(streamingGroupname) != null) { - params.setDocumentSelection(limitDocumentType + "id.group==\"" + query.properties().getString(streamingGroupname) + "\""); + params.setDocumentSelection("id.group==\"" + query.properties().getString(streamingGroupname) + "\""); } else if (query.properties().getString(streamingSelection) != null) { - params.setDocumentSelection(limitDocumentType + query.properties().getString(streamingSelection)); + params.setDocumentSelection(query.properties().getString(streamingSelection)); } params.setTimeoutMs(query.getTimeout()); // Per bucket visitor timeout params.setSessionTimeoutMs(query.getTimeout()); diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VisitorFactory.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VisitorFactory.java index 9762d05bf45..25d4bbc689d 100644 --- a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VisitorFactory.java +++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VisitorFactory.java @@ -10,5 +10,5 @@ import com.yahoo.search.Query; * @author <a href="mailto:ulf@yahoo-inc.com">Ulf Carlin</a> */ interface VisitorFactory { - public Visitor createVisitor(Query query, String searchCluster, Route route, String documentType); + public Visitor createVisitor(Query query, String searchCluster, Route route); } diff --git a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java index 0d58b10fde4..c8c653d67ed 100644 --- a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java @@ -4,14 +4,12 @@ package com.yahoo.vespa.streamingvisitors; import com.yahoo.config.subscription.ConfigGetter; import com.yahoo.document.select.parser.TokenMgrException; import com.yahoo.messagebus.routing.Route; -import com.yahoo.prelude.fastsearch.CacheKey; -import com.yahoo.prelude.fastsearch.CacheParams; -import com.yahoo.prelude.fastsearch.ClusterParams; import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig; import com.yahoo.document.select.parser.ParseException; import com.yahoo.fs4.QueryPacket; -import com.yahoo.prelude.fastsearch.SummaryParameters; -import com.yahoo.prelude.fastsearch.TimeoutException; +import com.yahoo.prelude.Ping; +import com.yahoo.prelude.Pong; +import com.yahoo.prelude.fastsearch.*; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.result.Hit; @@ -27,11 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; +import static org.junit.Assert.*; /** * @author <a href="mailto:ulf@yahoo-inc.com">Ulf Carlin</a> @@ -41,20 +35,18 @@ public class VdsStreamingSearcherTestCase { public static final String GROUPDOC_ID_PREFIX = "groupdoc:namespace:group1:userspecific"; private static class MockVisitor implements Visitor { - private final Query query; - final String searchCluster; - final Route route; - final String documentType; + private Query query; + String searchCluster; + Route route; int totalHitCount; private final List<SearchResult.Hit> hits = new ArrayList<>(); private final Map<String, DocumentSummary.Summary> summaryMap = new HashMap<>(); private final List<Grouping> groupings = new ArrayList<>(); - MockVisitor(Query query, String searchCluster, Route route, String documentType) { + MockVisitor(Query query, String searchCluster, Route route) { this.query = query; this.searchCluster = searchCluster; this.route = route; - this.documentType = documentType; } @Override @@ -132,8 +124,8 @@ public class VdsStreamingSearcherTestCase { private static class MockVisitorFactory implements VisitorFactory { @Override - public Visitor createVisitor(Query query, String searchCluster, Route route, String documentType) { - return new MockVisitor(query, searchCluster, route, documentType); + public Visitor createVisitor(Query query, String searchCluster, Route route) { + return new MockVisitor(query, searchCluster, route); } } diff --git a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsVisitorTestCase.java b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsVisitorTestCase.java index c84088a19bb..6964fd3b5e8 100644 --- a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsVisitorTestCase.java +++ b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsVisitorTestCase.java @@ -224,15 +224,15 @@ public class VdsVisitorTestCase { return query; } - private void verifyVisitorParameters(VisitorParameters params, QueryArguments qa, String searchCluster, String docType, Route route) { + private void verifyVisitorParameters(VisitorParameters params, QueryArguments qa, String searchCluster, Route route) { //System.out.println("params="+params); // Verify parameters based on properties if (qa.userId != null) { - assertEquals(docType + " and id.user=="+qa.userId, params.getDocumentSelection()); + assertEquals("id.user=="+qa.userId, params.getDocumentSelection()); } else if (qa.groupName != null) { - assertEquals(docType + " and id.group==\""+qa.groupName+"\"", params.getDocumentSelection()); + assertEquals("id.group==\""+qa.groupName+"\"", params.getDocumentSelection()); } else if (qa.selection != null) { - assertEquals(docType + " and " +qa.selection, params.getDocumentSelection()); + assertEquals(qa.selection, params.getDocumentSelection()); } else { assertEquals("", params.getDocumentSelection()); } @@ -407,15 +407,15 @@ public class VdsVisitorTestCase { } private void verifyVisitorOk(MockVisitorSessionFactory factory, QueryArguments qa, Route route, String searchCluster) throws Exception { - VdsVisitor visitor = new VdsVisitor(buildQuery(qa), searchCluster, route, "mytype", factory); + VdsVisitor visitor = new VdsVisitor(buildQuery(qa), searchCluster, route, factory); visitor.doSearch(); - verifyVisitorParameters(factory.getParams(), qa, searchCluster, "mytype", route); + verifyVisitorParameters(factory.getParams(), qa, searchCluster, route); supplyResults(visitor); verifyResults(qa, visitor); } private void verifyVisitorFails(MockVisitorSessionFactory factory, QueryArguments qa, Route route, String searchCluster) throws Exception { - VdsVisitor visitor = new VdsVisitor(buildQuery(qa), searchCluster, route, "mytype", factory); + VdsVisitor visitor = new VdsVisitor(buildQuery(qa), searchCluster, route, factory); try { visitor.doSearch(); assertTrue("Visitor did not fail", false); |