You cannot use wildcards in quotes simply because the QueryParser syntax
does not look for such things...at the top level it is either looking
for a Wildcard token OR a Quoted token. There is good reason for this: a
phrase query does not support wildcards. The hack that I suggested
(looking for a wildcard in the token before returning the TermQuery) was
only going to work because you where not generating a PhraseQuery with
your quotes...the KeywordAnalyzer only emits a single token keeping a
PhraseQuery from being generated....a TermQuery was being generated
instead...which you wanted to turn into a WildcardQuery if you found a *
or ? in the Term.
If you wanted Lucene to generally support wildcard queries within quotes
you have to do a bit of work. One way: instead of generating
PhraseQueries you override the QueryParser to generate SpanNearQueries,
then you need to implement a simple SpanWildcardQuery and change some
logic around in the QueryParser to look for wildcard characters in the
quoted token and generate the correct Query of SpanNearQuery's and
SpanWildcardQueries.
Again, I know I am not the clearest of explainers...I just have an itch
to try and help out anyway <g>.
- Mark
Paul Taylor wrote:
Mark Miller wrote:
You can't use a wildcard within double quotes. The Lucene syntax
grammar does not look for such things.
This is the bit I don't get (I have got round the problem), why can't
you use wildcards within double quotes, this isnt mentioned anywhere
in http://lucene.apache.org/java/docs/queryparsersyntax.html
Paul
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]