[ 
https://issues.apache.org/jira/browse/SOLR-9510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16369780#comment-16369780
 ] 

Mikhail Khludnev commented on SOLR-9510:
----------------------------------------

[~werder], thanks for your attention 
bq. Not sure that I fully understand how "expand parents docset" part will work 
(it will just execute parent BJQ again, but without excluded child clause, 
right?) 
I'm sure you do. Exactly right. I'd say what's changed here is propagating 
{{domain.excludeTags}} through {{{!parent}} 

bq. , but have a theoretical question
which JIRA is not a proper place for, you know.

bq. Assume someone will implement "global" feature
Right, that's spinning around as well. As it's said above, here we reset top 
query/result docset that could be also expressed via 
{code}
..{    type:query, 
       global:true, 
       q:..
{code}
or   
{code}
 {
   domain: {
       ...
       global:true, 
    }
  }
{code}
however, after that you need to repeat top filters and query excluding a child, 
join them to child and filter children again, oh my.. So, introducing {{global 
}} might be considered ... hold on, what if we exclude top query as well via 
explicit {{excludeTag}}?  

> child level facet exclusions
> ----------------------------
>
>                 Key: SOLR-9510
>                 URL: https://issues.apache.org/jira/browse/SOLR-9510
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Facet Module, faceting, query parsers
>            Reporter: Mikhail Khludnev
>            Priority: Major
>         Attachments: SOLR_9510.patch, SOLR_9510.patch, SOLR_9510.patch, 
> SOLR_9510.patch, SOLR_9510.patch
>
>
> h2. Challenge
> * Since SOLR-5743 achieved block join child level facets with counts roll-up 
> to parents, there is a demand for filter exclusions. 
> h2. Context
> * Then, it's worth to consider JSON Facets as an engine for this 
> functionality rather than support a separate component. 
> * During a discussion in SOLR-8998 [a solution for block join with child 
> level 
> exclusion|https://issues.apache.org/jira/browse/SOLR-8998?focusedCommentId=15487095&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15487095]
>  has been found.  
>    
> h2. Proposal
> It's proposed to provide a bit of syntax sugar to make it user friendly, 
> believe it or not.
> h2. List of improvements
> * introducing a local parameter {{filters}} for {{\{!parent}} query parser 
> referring to _multiple_ filters queries via parameter name: {{\{!parent 
> filters=$child.fq ..}..&child.fq=color:Red&child.fq=size:XL}} 
> these _filters_ are intersected with a child query supplied as a subordinate 
> clause.
> * introducing {{\{!filters params=$child.fq excludeTags=color 
> v=$subq}&subq=text:word&child.fq={!tag=color}color:Red&child.fq=size:XL}} it 
> intersects a subordinate clause (here it's {{subq}} param, and the trick is 
> to refer to the same query from {{\{!parent}}}), with multiple filters 
> supplied via parameter name {{params=$child.fq}}, it also supports 
> {{excludeTags}}.
> h2. Notes
> Regarding the latter parser, the alternative approach might be to move into 
> {{domain:\{..}}} instruction of json facet. From the implementation 
> perspective, it's desired to optimize with bitset processing, however I 
> suppose it's might be deferred until some initial level of maturity.     
> h2. Example
> {code}
> q={!parent which=type_s:book filters=$child.fq 
> v=$childquery}&childquery=comment_t:good&child.fq={!tag=author}author_s:yonik&child.fq={!tag=stars}stars_i:(5
>  3)&wt=json&indent=on&json.facet={
> comments_for_author:{
>   type:query,
>   q:"{!filters params=$child.fq excludeTags=author v=$childquery}",
>   "//note":"author filter is excluded",
>   domain:{
>      blockChildren:"type_s:book",
>      "//":"applying filters here might be more promising"
>    }, facet:{
>    authors:{
>       type:terms,
>       field:author_s,
>       facet: {
>           in_books: "unique(_root_)"
>         }
>     }
>    }
> } ,
> comments_for_stars:{
>   type:query,
>  q:"{!filters params=$child.fq excludeTags=stars v=$childquery}",
>   "//note":"stars_i filter is excluded",
>   domain:{
>      blockChildren:"type_s:book"
>    }, facet:{
>    stars:{
>       type:terms,
>       field:stars_i,
>       facet: {
>           in_books: "unique(_root_)"
>         }
>     }
>   }
> }
> }
> {code} 
> Votes? Opinions?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to