[ 
https://issues.apache.org/jira/browse/LUCENE-2262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833496#action_12833496
 ] 

Robert Muir edited comment on LUCENE-2262 at 2/14/10 3:50 AM:
--------------------------------------------------------------

bq. in my opinion disallowing these queries with leading wildcards, be it * or 
? or whatever, is rather silly, since we allow even slower fuzzyqueries by 
default.

bq. Agree.

What do you think, should we skip this step then and simply deprecate the 
entire setAllowLeadingWildcard concept all together, setting it to true for 
Version >= 3.1?

The only concern I have is that doing this might mislead someone into thinking 
leading * is no longer slow, which it still is (its faster than 3.0 but the 
computational complexity is still the same, unlike ?). Here is a comparison of 
3.0 and trunk, on 10M terms, from the LUCENE-1606 benchmark:

||Pattern||Avg query time (ms) Lucene 3.0||Avg query time (ms) Flex||
|?NNNNNN|2408.5|28.8|
|*NNNNNN|3258.3|1048.0|

      was (Author: rcmuir):
    bq. in my opinion disallowing these queries with leading wildcards, be it * 
or ? or whatever, is rather silly, since we allow even slower fuzzyqueries by 
default.

bq. Agree.

What do you think, should we skip this step then and simply deprecate the 
entire setAllowLeadingWildcard concept all together, setting it to true for 
Version >= 3.1?

  
> QueryParser should now allow leading '?' wildcards
> --------------------------------------------------
>
>                 Key: LUCENE-2262
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2262
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: QueryParser
>    Affects Versions: Flex Branch
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>            Priority: Minor
>             Fix For: Flex Branch
>
>         Attachments: LUCENE-2262.patch, LUCENE-2262_backwards.patch
>
>
> QueryParser currently throws an exception if a wildcard term begins with the 
> '?' operator.
> The current documentation describes why this is:
> {noformat}
> When set, * or ? are allowed as the first character of a PrefixQuery and 
> WildcardQuery.
> Note that this can produce very slow queries on big indexes. 
> {noformat}
> In the flexible indexing branch, wildcard queries with leading '?' operator 
> are no longer slow on big indexes (they do not enumerate terms in linear 
> fashion).
> Thus, it no longer makes sense to throw a ParseException for a leading '?'
> So, users should be able to perform a query of "?foo" and no longer get a 
> ParseException from the QueryParser.
> For the flexible indexing branch, wildcard queries of  'foo?', '?foo', 
> 'f?oo', etc are all the same from a performance perspective.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to