You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Houston Putman (Jira)" <ji...@apache.org> on 2020/01/02 21:21:00 UTC
[jira] [Commented] (SOLR-11746) numeric fields need better error
handling for prefix/wildcard syntax -- consider uniform support for "foo:*
== foo:[* TO *]"
[ https://issues.apache.org/jira/browse/SOLR-11746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17007084#comment-17007084 ]
Houston Putman commented on SOLR-11746:
---------------------------------------
I agree [~hossman]. If we are going to default to the {{getRangeQuery()}} for every possible entrypoint of a field wildcard, then the docValues check should be done in that method.
Also every {{getRangeQuery()}} implementation should support this new optimization. So in order to help facilitate that, I refactored all overriding implementations of {{getRangeQuery()}} to {{getSpecializedRangeQuery()}}, which is called from {{FieldType.getRangeQuery()}} which does the check for an existence Queries. Any pieces of custom code that add new fields (and override {{getRangeQuery()}}) will not be broken by this, they will just not receive the new optimization.
I would do the same thing for {{getPrefixQuery}}, but there are no other overriding methods than the one included in this patch.
> numeric fields need better error handling for prefix/wildcard syntax -- consider uniform support for "foo:* == foo:[* TO *]"
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-11746
> URL: https://issues.apache.org/jira/browse/SOLR-11746
> Project: Solr
> Issue Type: Improvement
> Reporter: Chris M. Hostetter
> Priority: Major
> Attachments: SOLR-11746.patch, SOLR-11746.patch, SOLR-11746.patch
>
>
> On the solr-user mailing list, Torsten Krah pointed out that with Trie numeric fields, query syntax such as {{foo_d:\*}} has been functionality equivilent to {{foo_d:\[\* TO \*]}} and asked why this was not also supported for Point based numeric fields.
> The fact that this type of syntax works (for {{indexed="true"}} Trie fields) appears to have been an (untested, undocumented) fluke of Trie fields given that they use indexed terms for the (encoded) numeric terms and inherit the default implementation of {{FieldType.getPrefixQuery}} which produces a prefix query against the {{""}} (empty string) term.
> (Note that this syntax has aparently _*never*_ worked for Trie fields with {{indexed="false" docValues="true"}} )
> In general, we should assess the behavior users attempt a prefix/wildcard syntax query against numeric fields, as currently the behavior is largely non-sensical: prefix/wildcard syntax frequently match no docs w/o any sort of error, and the aformentioned {{numeric_field:*}} behaves inconsistently between points/trie fields and between indexed/docValued trie fields.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org