[
https://issues.apache.org/jira/browse/SOLR-17736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18046416#comment-18046416
]
Chris M. Hostetter commented on SOLR-17736:
-------------------------------------------
Finally got a chance to read through everything in depth....
* You renamed the params and their constants, but SolrExceptions still refer
to {{"When running a diversifying children KNN query, 'allParents' parameter is
required"}}
* You only support a single instance of {{parents.preFilter}} – but the
regular {{preFilter}} can be specified multiple times.
** This feels inconsistent?
** It should be fairly easy to change {{localParams.get(PARENTS_PRE_FILTER)}}
to {{localParams.getParams(PARENTS_PRE_FILTER)}} and then refactor some of the
"loop over a String[] to produce a List<Query> of filters" logic out of
{{AbstractVectorQParserBase.getFilterQuery()}} into a helper method that could
be used here (and then just build a BooleanQuery from that List<Query>
** Either way: when the {{{}parents.preFilter{}}}(s) are parsed, you should
make sure {{setIsFilter(true)}} is called on the subQuery QParser (before
calling {{getQuery()}} – that can help other QParsers optimize what they return.
* The {{dense-vector-search.adoc}} explanations of the new params feel
backwards?
** The way {{parents.preFilter}} is explained, it seems like *that* is how you
specify that you want to diversify vector documents by their parents, and then
only after it is explained is {{childrenOf}} mentioned as {{Mandatory if using
'parents.preFilter' parameter}}
*** which is going to make people think they need both – even if if they want
to query all children of all parents (ie: sending {{parents.preFilter={*}:{*}}}
for no reason)
** it seems like we should first tell people about {{childrenOf}} as a way to
_request_ diversification, then say "if you are using this feature, you _may_
want to use {{parents.preFilter}} as a way to limit the list of parents whose
children will be searched" — as a convenience method instead of using a
{{"preFilter=\{!child...}"}}
* The additions to {{searching-nested-documents.adoc}} should have links to
the _details_ about the {{knn}} parser on {{dense-vector-search.adoc}}
> Introduce support for KNN search on nested vector documents
> -----------------------------------------------------------
>
> Key: SOLR-17736
> URL: https://issues.apache.org/jira/browse/SOLR-17736
> Project: Solr
> Issue Type: New Feature
> Components: vector-search
> Affects Versions: 9.8
> Reporter: Alessandro Benedetti
> Priority: Major
> Labels: pull-request-available
> Attachments: SOLR-17736.patch
>
> Time Spent: 3h 20m
> Remaining Estimate: 0h
>
> This issue tracks the work of introducing the support for KNN search on
> nested vector documents, surfacing the Lucene implementation in here:
> https://github.com/apache/lucene/pull/12434
> This allows both:
> -KNN retrieval of children, applying parent filters with no denormalisation
> needed
> -KNN retrieval of parents (based on children KNN, children level prefiltering
> and parent level prefiltering)
> It's one way of having multi-valued vectors per field, per document in Solr.
> More will come soon
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]