Description
When using facet.threads, SimpleFacets can return the wrong results when using facet.prefix multiple times on the same field.
The problem is that SimpleFacets essentially stores the prefix value in a global variable, rather than passing the current prefix value into the Callable. So, the prefix value that is used when getting the term counts is whichever one was the last one parsed.
STEPS TO REPRODUCE:
- Create a document with a string field named "myFieldName" and value "foo"
- Create another document with a string field named "myFieldName" and value "bar"
- Run this query:
q=*:*&rows=0&facet=true&facet.field={!key=key1 facet.prefix=foo}myFieldName&facet.field={!key=key2 facet.prefix=bar}myFieldName&facet.threads=1
EXPECTED:
<lst name="facet_fields"> <lst name="key1"> <int name="foo">1</int> </lst> <lst name="key2"> <int name="bar">1</int> </lst> </lst>
ACTUAL:
<lst name="facet_fields"> <lst name="key1"> <int name="bar">1</int> </lst> <lst name="key2"> <int name="bar">1</int> </lst> </lst>
I'm using 4.9, but I think this affects all versions.
A user previously reported this here:
http://mail-archives.apache.org/mod_mbox/lucene-solr-user/201405.mbox/%3CBAY169-W52CEF09187A88286DE5417D5270@phx.gbl%3E
I think this affects parameters other than facet.prefix, but I have not tried that yet.
Attachments
Attachments
Issue Links
- relates to
-
SOLR-2548 Multithreaded faceting
- Closed