[ 
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]

Reply via email to