Can you try to do: QueryParser qp = new MultiFieldQueryParser(params); qp.setDefaultOperator(Operator.AND); qp.parse(query);
See if that helps -- the static parse method instantiates its own QP and therefore you cannot tell it that the default OP is AND. Shai On Tue, Nov 30, 2010 at 1:42 PM, maven apache <apachemav...@gmail.com>wrote: > Hi: I have two documents: > > title body > Lucene In Action A high-performance, full-featured text search > engine library. > Lucene Practice Use lucene in your application > > Now,I search "lucene performance" using > > private String[] f = { "title", "body"}; > private Occur[] should = { Occur.SHOULD, Occur.SHOULD}; > Query q = MultiFieldQueryParser.parse(Version.LUCENE_29, "lucene > performance", f, should,new IKAnalyzer()); > > Then I get two hits: "Lucene In Action" and "Lucene Practice". > > However I do not want the "Lucene practice" in the search result. > > That's to say,I just want the documents who own all my search terms can be > returned,the "lucene parctice" does not contain the term "performance",so > it > should not be returned. > > Any ideas? > > BTW,I do really cautioned when asking a new question in the list,but I > really have no idea after read the documents and googling,hoping not > disturb > you guys. >