You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael Busch (JIRA)" <ji...@apache.org> on 2008/05/25 00:31:55 UTC
[jira] Commented: (LUCENE-588) Escaped wildcard character in
wildcard term not handled correctly
[ https://issues.apache.org/jira/browse/LUCENE-588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12599630#action_12599630 ]
Michael Busch commented on LUCENE-588:
--------------------------------------
I think we should add a new constructor to WildcardQuery like this:
{code:java}
public WildcardQuery(Term term) {
this(term, WildcardTermEnum.WILDCARD_CHAR, WildcardTermEnum.WILDCARD_STRING);
}
public WildcardQuery(Term term, char wildcardChar, char wildcardString) {
super(term);
this.wildcardChar = wildcardChar;
this.wildcardString = wildcardString;
this.termContainsWildcard = (term.text().indexOf(wildcardChar) != -1)
|| (term.text().indexOf(wildcardString) != -1);
}
{code}
Then the WildcardQuery doesn't need to know anything about escaping and the QueryParser
can just map wildcard characters that weren't escaped to some other unused chars and can
unescape * and ? chars.
The only disadvantage of this design would be that the WildcardQuery.toString() would not
produce a String anymore that the QueryParser could parse. However, I think the requirement
of Query.toString() to produce a parseable String is not very good anyways, because it adds
a dependency between the Query classes and the QueryParser. I'd prefer to add a method
like:
{code:java}
String toQueryString(Query);
{code}
to the QueryParser. Then Query.toString() wouldn't be tied anymore to a specific QueryParser
implementation and syntax. Thoughts?
Terry are you still around? Would you like to work on a new patch here?
> Escaped wildcard character in wildcard term not handled correctly
> -----------------------------------------------------------------
>
> Key: LUCENE-588
> URL: https://issues.apache.org/jira/browse/LUCENE-588
> Project: Lucene - Java
> Issue Type: Bug
> Components: QueryParser
> Affects Versions: 2.0.0
> Environment: Windows XP SP2
> Reporter: Sunil Kamath
> Assignee: Michael Busch
> Priority: Minor
> Attachments: LUCENE-588.patch
>
>
> If an escaped wildcard character is specified in a wildcard query, it is treated as a wildcard instead of a literal.
> e.g., t\??t is converted by the QueryParser to t??t - the escape character is discarded.
--
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-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org