dsmiley commented on code in PR #4144: URL: https://github.com/apache/solr/pull/4144#discussion_r2825560606
########## solr/solr-ref-guide/modules/query-guide/pages/json-combined-query-dsl.adoc: ########## @@ -25,6 +25,43 @@ It is extending JSON Query DSL ultimately enabling Hybrid Search. This feature is currently unsupported for grouping and Cursors. ==== +[IMPORTANT] +==== +This feature works in both Standalone and SolrCloud modes and always performs distributed search execution. +In Standalone (user-managed) mode, shard URLs must be explicitly allow-listed using the *allowUrls* parameter, otherwise Solr returns HTTP 403. For example: + +``` +--jvm-opts "-Dsolr.security.allow.urls=http://localhost:8983/solr/" +``` + +In SolrCloud mode, this is managed automatically via ZooKeeper. +==== + +== Configuration Requirements + +Combined Query Feature has a separate handler with class `solr.CombinedQuerySearchHandler` which can be configured as below: + +``` +<requestHandler name="/search" class="solr.CombinedQuerySearchHandler"> +..... +</requestHandler> +``` + +In addition, the `QueryComponent` has been extended to create a new `CombinedQueryComponent`, which must be declared as a search component: +``` +<searchComponent class="solr.CombinedQueryComponent" name="combined_query"> + <int name="maxCombinerQueries">2</int> +</searchComponent> +``` + + +The Search Component also accepts parameters as below: + +`maxCombinerQueries`:: +This parameter can be set to put upper limit check on the maximum number of queries can be executed defined in `combiner.query`. Review Comment: ```suggestion This parameter can be set to enforce an upper limit on the number of queries defined in `combiner.query`. ``` ########## solr/solr-ref-guide/modules/query-guide/pages/json-combined-query-dsl.adoc: ########## @@ -25,6 +25,43 @@ It is extending JSON Query DSL ultimately enabling Hybrid Search. This feature is currently unsupported for grouping and Cursors. ==== +[IMPORTANT] +==== +This feature works in both Standalone and SolrCloud modes and always performs distributed search execution. +In Standalone (user-managed) mode, shard URLs must be explicitly allow-listed using the *allowUrls* parameter, otherwise Solr returns HTTP 403. For example: + +``` +--jvm-opts "-Dsolr.security.allow.urls=http://localhost:8983/solr/" Review Comment: Hmm; okay, the need for this is something Solr should improve (to automatically add localhost same-port). If this was improved, I suspect you wouldn't of even written this entire paragraph. ########## solr/solr-ref-guide/modules/query-guide/pages/json-combined-query-dsl.adoc: ########## @@ -71,37 +108,41 @@ Below is a sample JSON query payload: } ``` -== Search Handler Configuration - -Combined Query Feature has a separate handler with class `solr.CombinedQuerySearchHandler` which can be configured as below: - -``` -<requestHandler name="/search" class="solr.CombinedQuerySearchHandler"> -..... -</requestHandler> -``` +== Combiner Algorithm Plugin -The Search Handler also accepts parameters as below: +As mentioned xref:json-combined-query-dsl.adoc#query-dsl-structure[above], custom algorithms can be configured to combine the results across multiple queries using a https://solr.apache.org/guide/solr/latest/configuration-guide/solr-plugins.html[Solr plugin]. -`maxCombinerQueries`:: - This parameter can be set to put upper limit check on the maximum number of queries can be executed defined in `combiner.query`. - It defaults to `5` if not set. +The class to implement the custom logic has to extend `QueryAndResponseCombiner`, which is an abstract base class that provides a framework for implementing various algorithms used to merge ranked lists and shard documents. -=== Combiner Algorithm Plugin +The custom class must be implemented in a Java project built against the Solr version that includes this feature (declared as a dependency in the build configuration), and the compiled JAR must then be deployed to the Solr libraries directory `../server/solr-webapp/webapp/WEB-INF/lib`. Review Comment: Rather than say these specific things, please instead refer to `solr-plugins.adoc` which discusses several ways to install them (IMO least preferred is WEB-INF/lib). If you want to say more about java development, I think _that_ page would be where we might want to say such things. But not _this_ page here. ########## solr/solr-ref-guide/modules/query-guide/pages/json-combined-query-dsl.adoc: ########## @@ -25,6 +25,43 @@ It is extending JSON Query DSL ultimately enabling Hybrid Search. This feature is currently unsupported for grouping and Cursors. ==== +[IMPORTANT] +==== +This feature works in both Standalone and SolrCloud modes and always performs distributed search execution. +In Standalone (user-managed) mode, shard URLs must be explicitly allow-listed using the *allowUrls* parameter, otherwise Solr returns HTTP 403. For example: + +``` +--jvm-opts "-Dsolr.security.allow.urls=http://localhost:8983/solr/" Review Comment: `--jvm-opts` -- surely we can just pass `-Dsolr.....` ########## solr/solr-ref-guide/modules/query-guide/pages/json-combined-query-dsl.adoc: ########## @@ -25,6 +25,43 @@ It is extending JSON Query DSL ultimately enabling Hybrid Search. This feature is currently unsupported for grouping and Cursors. ==== +[IMPORTANT] +==== +This feature works in both Standalone and SolrCloud modes and always performs distributed search execution. +In Standalone (user-managed) mode, shard URLs must be explicitly allow-listed using the *allowUrls* parameter, otherwise Solr returns HTTP 403. For example: + +``` +--jvm-opts "-Dsolr.security.allow.urls=http://localhost:8983/solr/" +``` + +In SolrCloud mode, this is managed automatically via ZooKeeper. Review Comment: I would do away with this sentence, as redundant with the prior paragraph. And the ZK reference is a needless implementation detail reference. ########## changelog/unreleased/SOLR-18100-improve-combined-query-documentation.yml: ########## Review Comment: please don't add to the changelog on documentation matters -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
