You'd be better off building a BooleanQuery.

BooleanQuery bq = new BooleanQuery();
bq.add(new TermQuery(...), ...);
bq.add(new FuzzyQuery(...),. ...);
etc

See BooleanClause.Occur for options on MUST, SHOULD etc.


--
Ian.

On Thu, Mar 24, 2011 at 5:48 PM, Deepak Konidena
<deepak.konid...@cornell.edu> wrote:
> Hi,
>
> I am using MultiFieldQueryParser with a custom analyzer for parsing search 
> text.
>
> Now,  when I say
>
> MultiFieldQueryParser qp = new MultiFieldQueryParser(Version,  new String[] 
> {"field1", "field2", "field3"}, customAnalyzer);
> qp.setDefaultOperator(QueryParser.AND_OPERATOR);
>
> Query query = qp.parse("term1");
>
> The query that gets built is
>
> field1:term1 field2:term1 field3:term1
>
> I am assuming input is treated as a TermQuery and is being searched against 
> the respective fields (field1, field2, field3) in case of single term and in 
> case of multiple search terms, a BooleanQuery with an AND of all the 
> individual TermQueries.
>
> Now what if  I want to do something like,
>
> Perform a TermQuery on term1 against all the fields, perform a FuzzyQuery on 
> term2, RangeQuery on term3, etc..
>
> And finally do an AND on all the terms?
>
> Please let me know, if am assuming anything wrong here. My understanding is 
> that to break individual terms to be searched using different queries, I will 
> need to implement a custom QueryParser. If so, how would I start about 
> implementing that?
>
>
> Thanks
> Deepak Konidena
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to