Keep in mind that this would not work for

important:"conference agenda"

as the quotes would be escaped and queryparser will not generate a phrase query

- Mark


Steven Rowe wrote:
static String QueryParser.escape(String) should do the trick:

<http://lucene.apache.org/java/docs/api/org/apache/lucene/queryParser/QueryParser.html#escape(java.lang.String)>

Look at the bottom of the below-linked page for the list of characters
that the above method will escape:

<http://lucene.apache.org/java/docs/queryparsersyntax.html>

Steve

Mark Miller wrote:
if you scan the query and escape all colons (ie \:) then you should be
good (I have not verified). Of course you will not be able to do a field
search, but that seems to be what your after.

Antony Bowesman wrote:
Hi,

I have a search UI that allows search criteria to be input against
specific fields, e.g. Subject.

In order to create a suitable Lucene Query, I must analyze that String
so that it becomes a set of Tokens which I can then turn into Terms. QueryParser seems to fit the bill for that, however, it is too clever
as it assumes that anything suffixes with a : is a field reference.

If someone enters

important:conference agenda

in the subject field, I don't want QP to translate this to

+important:conference +defaultfield:agenda

I want to end up with

+subject:important +subject:conference +subject:agenda

I've written something to do this, but I know it is not as clever as
QP as currently it can only create BooleanQueries with TermQueries and
cannot handle PhraseQuery, so would not handle

important:"conference agenda"

correctly.  Does anyone have any pointers on how to limit QueryParser
so that I can force it to treat what it thinks as fields as terms.

Thanks
Antony


---------------------------------------------------------------------
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]

Reply via email to