You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Mikhail Khludnev (JIRA)" <ji...@apache.org> on 2018/06/15 22:22:00 UTC

[jira] [Comment Edited] (SOLR-12490) referring/excluding clauses from JSON query DSL in JSON facets.

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

Mikhail Khludnev edited comment on SOLR-12490 at 6/15/18 10:21 PM:
-------------------------------------------------------------------

Here is fewer-impact approach induced by chat with [~osavrasov]. The proposal is to introduce {{json.queries}}, it's like arbitrary {{json.param}} but it's translated with query DSL 

{code}
{
    "query" : {
      "#top":{
          "parent": {
              "query": "sku-title:foo",
              "filters" : "$childFq", // non-json old style param reference 
              "which": "scope:product"
           }
        }
    }, // like .param but parsed with query dsl syntax 
    "queries":{
         "childFq":[{ "#color" :"color:black" },
                    { "#size" : "size:L" }]
    },
    "facet":{
       "sku_colors_in_prods":{
          "type" : "terms",
          "field" : "color",
          "domain" : {
               "excludeTags":["top",       // we need to drop top-level parent query
                              "color"],    // excluding one child filter clause
               "filter":[ 
                      {"param":"childFq"}  // referring to .queries.childFq
               ]
           },
        "facet": {                         // counting products
              "prod_count":"uniqueBlock(_root_)"
           }
   }
}
}
{code}


was (Author: mkhludnev):
Here is few-impact approach induced by chat with [~osavrasov]. The proposal is to introduce {{json.queries}}, it's like arbitrary {{json.param}} but it's translated with query DSL 

{code}
{
    "query" : {
      "#top":{
          "parent": {
              "query": "sku-title:foo",
              "filters" : "$childFq", // non-json old style param reference 
              "which": "scope:product"
           }
        }
    }, // like .param but parsed with query dsl syntax 
    "queries":{
         "childFq":[{ "#color" :"color:black" },
                    { "#size" : "size:L" }]
    },
    "facet":{
       "sku_colors_in_prods":{
          "type" : "terms",
          "field" : "color",
          "domain" : {
               "excludeTags":["top",       // we need to drop top-level parent query
                              "color"],    // excluding one child filter clause
               "filter":[ 
                      {"param":"childFq"}  // referring to .queries.childFq
               ]
           },
        "facet": {                         // counting products
              "prod_count":"uniqueBlock(_root_)"
           }
   }
}
}
{code}

> referring/excluding clauses from JSON query DSL in JSON facets. 
> ----------------------------------------------------------------
>
>                 Key: SOLR-12490
>                 URL: https://issues.apache.org/jira/browse/SOLR-12490
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Facet Module, faceting
>            Reporter: Mikhail Khludnev
>            Priority: Major
>
> It's spin off from the [discussion|https://issues.apache.org/jira/browse/SOLR-9685?focusedCommentId=16508720&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16508720]. 
> h2. Problem
> # after SOLR-9685 we can tag separate clauses in hairish queries like {{parent}}, {{bool}}
> # we can {{domain.excludeTags}}
> # we are looking for child faceting with exclusions, see SOLR-9510, SOLR-8998    
> # but we can refer only separate params in {{domain.filter}}, it's not possible to refer separate clauses
> h2. Proposal 
> # tag child clauses multiple times
> {code}
> {
>     "query" : {
>       "#top":{
>           "parent": {
>               "query": "sku-title:foo",
>               "filters" : [
>                   "scope:sku",
>                	  { "#sku,color" :  "color:black" }, // multiple tags
>             	  { "#sku,size" : "size:L" }
>                 ],
>               "which": "scope:product"
>            }
>         }
>     }
> }
> {code} 
> # refer to sku clauses, either by 
> ## (1) {{domain.filter.tag}} in addition to {{param}}, or
> ## (2) {{domain.includeTags}} mimicking {{excludeTags}}  
> {code}
> "facet":{
>   "sku_colors_in_prods":{
>       "type" : "terms",
>       "field" : "color",
>        "domain" : {
>           "excludeTags":["top","color"],   // we need to drop top-level parent query
>           "filter":[ 
>                       {"tag":"sku"}      // (1)
>            ],
>           "includeTags":"sku"      // (2)
>        },
>       "facet":"uniqueBlock(_root_)"
>    }
> }
> {code}  
> WDYT, [~osavrasov], [~yseeley@gmail.com]?



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

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