On Jul 25, 2007, at 5:05 PM, Joe Attardi wrote:
As far as I can tell, I basically have two options:
(1) Manually prepend the field identifier to the query text, for example:
         String fullQuery = field + ":" + queryText;
    then parse this query normally with QueryParser, OR
(2) Since I know it is only going to be searching one term, manually create a TermQuery with a Term object representing what the user typed in, for
example:
         Query query = new TermQuery(new Term(field, queryText));

Is there any advantage or disadvantage to any of these, or is one preferable over the other? My gut tells me that directly creating the TermQuery is more
efficient since it doesn't have to perform parsing, but I'm not sure.

I recommend constructing the Query manually whenever possible to avoid the possibility of QueryParser escaping or other syntax getting in the way. The only note to that is to be sure that the terms you pass to things like TermQuery are in the same state as they got indexed (lowercased, stemmed, whatever). You can manually run through an Analyzer if you need to get the terms normalized in some fashion.

        Erik


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to