[
https://issues.apache.org/jira/browse/SOLR-8082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steve Rowe updated SOLR-8082:
-----------------------------
Attachment: SOLR-8082.patch
Patch with a few minor cleanups:
* In {{TrieField.getRangeQueryForFloatDoubleDocValues()}}:
** Made constants for invariants (bits for infinities and zeros), in case the
compiler isn't smart enough to do that.
** Added parens in a couple of expressions to improve legibility.
* In {{DocValuesTest}}:
** In {{testFloatAndDoubleRangeQueryRandom()}}:
*** Converted several {{fieldName\[i].equals("floatdv") ? ... : ...}} trinary
operators to use (float,double) tuples (like the other values in this test),
using lambdas.
** In {{testFloatAndDoubleRangeQuery()}}:
*** {{negativeInfinity\[1]}} fixed: Float->Double
* bq. +1 to fixing the issue for 6.0 with the current patch (except for the
stale comment {{If min is negative (or -0d) and max is positive (or +0d), then
issue two range queries}}, which was left over an older patch).
** The patch fixes this too: {{s/two range queries/FunctionRangeQuery/}}
I'll commit tomorrow if no objections and nobody else gets to it first.
> can't query against negative float or double values when indexed="false"
> docValues="true" multiValued="false"
> -------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-8082
> URL: https://issues.apache.org/jira/browse/SOLR-8082
> Project: Solr
> Issue Type: Bug
> Reporter: Hoss Man
> Priority: Blocker
> Fix For: 6.0
>
> Attachments: SOLR-8082.patch, SOLR-8082.patch, SOLR-8082.patch,
> SOLR-8082.patch, SOLR-8082.patch, SOLR-8082.patch, SOLR-8082.patch,
> SOLR-8082.patch
>
>
> Haven't dug into this yet, but something is evidently wrong in how the
> DocValues based queries get build for single valued float or double fields
> when negative numbers are involved.
> Steps to reproduce...
> {noformat}
> $ bin/solr -e schemaless -noprompt
> ...
> $ curl -X POST -H 'Content-type:application/json' --data-binary '{
> "add-field":{ "name":"f_dv_multi", "type":"tfloat", "stored":"true",
> "indexed":"false", "docValues":"true", "multiValued":"true" }, "add-field":{
> "name":"f_dv_single", "type":"tfloat", "stored":"true", "indexed":"false",
> "docValues":"true", "multiValued":"false" } }'
> http://localhost:8983/solr/gettingstarted/schema
> {
> "responseHeader":{
> "status":0,
> "QTime":84}}
> $ curl -X POST -H 'Content-type:application/json' --data-binary
> '[{"id":"test", "f_dv_multi":-4.3, "f_dv_single":-4.3}]'
> 'http://localhost:8983/solr/gettingstarted/update/json/docs?commit=true'
> {"responseHeader":{"status":0,"QTime":57}}
> $ curl 'http://localhost:8983/solr/gettingstarted/query?q=f_dv_multi:"-4.3"'
> {
> "responseHeader":{
> "status":0,
> "QTime":5,
> "params":{
> "q":"f_dv_multi:\"-4.3\""}},
> "response":{"numFound":1,"start":0,"docs":[
> {
> "id":"test",
> "f_dv_multi":[-4.3],
> "f_dv_single":-4.3,
> "_version_":1512962117004689408}]
> }}
> $ curl 'http://localhost:8983/solr/gettingstarted/query?q=f_dv_single:"-4.3"'
> {
> "responseHeader":{
> "status":0,
> "QTime":5,
> "params":{
> "q":"f_dv_single:\"-4.3\""}},
> "response":{"numFound":0,"start":0,"docs":[]
> }}
> {noformat}
> Explicit range queries (which is how numeric "field" queries are implemented
> under the cover) are equally problematic...
> {noformat}
> $ curl
> 'http://localhost:8983/solr/gettingstarted/query?q=f_dv_multi:%5B-4.3+TO+-4.3%5D'
> {
> "responseHeader":{
> "status":0,
> "QTime":0,
> "params":{
> "q":"f_dv_multi:[-4.3 TO -4.3]"}},
> "response":{"numFound":1,"start":0,"docs":[
> {
> "id":"test",
> "f_dv_multi":[-4.3],
> "f_dv_single":-4.3,
> "_version_":1512962117004689408}]
> }}
> $ curl
> 'http://localhost:8983/solr/gettingstarted/query?q=f_dv_single:%5B-4.3+TO+-4.3%5D'
> {
> "responseHeader":{
> "status":0,
> "QTime":0,
> "params":{
> "q":"f_dv_single:[-4.3 TO -4.3]"}},
> "response":{"numFound":0,"start":0,"docs":[]
> }}
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]