[ 
https://issues.apache.org/jira/browse/SOLR-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man updated SOLR-2894:
---------------------------

    Attachment: SOLR-2894.patch

bq. By the looks of things, it looks the problem seems to be poping up when a 
refinement constraint in a multi-level pivot involves the empty string (and/or 
missing values?)

Hmmm... both cases definitely seem to be problematic: 
* refining on values that are the empty string {{""}}
* refining against the {{null}} psuedo-values when using {{facet.missing}}

(Note: TestCloudPivotFacet currently doesn't even try facet.missing -- need to 
rememedy that in a future patch)

----

The attached patch update modifies DistributedFacetPivotLargeTest to add a new 
"special_s" field to a handful of docs -- some of which get the value of 
SPECIAL ({{final String SPECIAL = "";}} and it goes into a loop here...

{code}
    // refine on empty string
    rsp = query( "q", "*:*",
                 "rows", "0",
                 "facet","true",
                 "facet.limit","1",
                 FacetParams.FACET_OVERREQUEST_RATIO, "0", // force refine
                 FacetParams.FACET_OVERREQUEST_COUNT, "0", // force refine
                 "facet.pivot","special_s,company_t");
{code}
{noformat}
   [junit4]   2> 32409 T43 C21 oasc.SolrCore.execute [collection1] 
webapp=/po_cuf path=/select 
params={shard.url=[ff01::083]:33332/po_cuf|[ff01::213]:33332/po_cuf|http://127.0.0.1:37920/po_cuf&NOW=1403920234230&rows=0&isShard=true&distrib=false&wt=javabin&fpt2938=&facet.pivot.mincount=-1&facet.overrequest.count=0&q=*:*&version=2&facet.pivot={!fpt%3D2938}special_s,company_t&facet.overrequest.ratio=0&facet=true&facet.limit=1}
 hits=357 status=0 QTime=0 
   [junit4]   2> 32413 T42 C21 oasc.SolrCore.execute [collection1] 
webapp=/po_cuf path=/select 
params={shard.url=[ff01::083]:33332/po_cuf|[ff01::213]:33332/po_cuf|http://127.0.0.1:37920/po_cuf&NOW=1403920234230&rows=0&isShard=true&distrib=false&wt=javabin&fpt2939=&facet.pivot.mincount=-1&facet.overrequest.count=0&q=*:*&version=2&facet.pivot={!fpt%3D2939}special_s,company_t&facet.overrequest.ratio=0&facet=true&facet.limit=1}
 hits=357 status=0 QTime=0 
{noformat}

(Note the {{...&fpt2938=&...}} and {{...&fpt2939=&...}})

Even if you redefine SPECIAL to be some other constant (ie: {{SPECIAL = 
"SPECIAL";}}) the code still goes into a loop in the next call, where 
facet.missing is used and refinement is needed on the "missing" value...

{code}
    // refine on empty string & facet.missing
    rsp = query( "q", "*:*",
                 "fq", "-place_s:0placeholder",
                 "rows", "0",
                 "facet","true",
                 "facet.limit","1",
                 "facet.missing","true",
                 FacetParams.FACET_OVERREQUEST_RATIO, "0", // force refine
                 FacetParams.FACET_OVERREQUEST_COUNT, "0", // force refine
                 "facet.pivot","special_s,company_t");
{code}

{noformat}
   [junit4]   2> 26798 T53 C19 oasc.SolrCore.execute [collection1] webapp=/do_ 
path=/select 
params={facet.overrequest.ratio=0&wt=javabin&facet.missing=true&facet.limit=1&facet.pivot.mincount=-1&facet.pivot={!fpt%3D2151}special_s,company_t&fpt2151=null,microsoft&distrib=false&version=2&shard.url=[ff01::083]:33332/do_|[ff01::213]:33332/do_|https://127.0.0.1:36955/do_|[ff01::114]:33332/do_&facet=true&q=*:*&rows=0&fq=-place_s:0placeholder&NOW=1403920466501&isShard=true&facet.overrequest.count=0}
 hits=202 status=0 QTime=0 
   [junit4]   2> 26802 T54 C19 oasc.SolrCore.execute [collection1] webapp=/do_ 
path=/select 
params={facet.overrequest.ratio=0&wt=javabin&facet.missing=true&facet.limit=1&facet.pivot.mincount=-1&facet.pivot={!fpt%3D2153}special_s,company_t&distrib=false&version=2&shard.url=[ff01::083]:33332/do_|[ff01::213]:33332/do_|https://127.0.0.1:36955/do_|[ff01::114]:33332/do_&facet=true&q=*:*&rows=0&fpt2153=null,microsoft&fq=-place_s:0placeholder&NOW=1403920466501&isShard=true&facet.overrequest.count=0}
 hits=202 status=0 QTime=1 
{noformat}

(Note the {{...&fpt2151=null,microsoft&...}} and 
{{...&fpt2153=null,microsoft&...}})

----

It looks like we need to rethink how the values are encoded into a path for the 
purpose of refinement so we can account for and differentiate between missing 
values, the empty string (0 chars), and the literal string "null" (4 chars)



> Implement distributed pivot faceting
> ------------------------------------
>
>                 Key: SOLR-2894
>                 URL: https://issues.apache.org/jira/browse/SOLR-2894
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Erik Hatcher
>            Assignee: Hoss Man
>             Fix For: 4.9, 5.0
>
>         Attachments: SOLR-2894-mincount-minification.patch, 
> SOLR-2894-reworked.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, 
> SOLR-2894_cloud_test.patch, dateToObject.patch, pivot_mincount_problem.sh
>
>
> Following up on SOLR-792, pivot faceting currently only supports 
> undistributed mode.  Distributed pivot faceting needs to be implemented.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to