Hi all,
I'm trying to create a fairly complex query, and having trouble constructing it.
My index contains a TextField with place names as strings, e.g.:
Port Melbourne, VIC 3207
I'm using an analyzer with just KeywordTokenizer and LowerCaseFilter, so that
my strings are not tokenized at all.
I want to support end-user searches like the following, and have them match
that string above:
Port Melbourne, VIC 3207 (exact)
Port (prefix)
Port Mel (prefix, including a space)
Melbo (wildcard)
Melburne (fuzzy)
I'm trying to get away with not parsing the query myself, and just constructing
something like this:
parser.parse( "(STRING^9) OR (STRING*^7) OR (*STRING*^5) OR
(STRING~1^3) );
That doesn't seem to work, neither with QueryParser nor with
ComplexPhraseQueryParser. Specifically, I'm having trouble getting appropriate
results when there's a space in the input string, notable with the wildcard
match part (it ends up returning everything in the index).
Is my approach above possible? I also have had a look at using specific Query
implementations and combining them in a BooleanQuery, but I'm not quite sure
how to replicate the "OR" behavior I want (from reading, Occur.SHOULD is not
equivalent or "OR").
Any suggestions would be appreciated.
Thanks!
Ross
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]