请教lucene 联合查询的问题

Lucene版本是2.92,中文分词使用的是盘古分词V2.3.1.0版。

现在碰到的问题是:使用关键词查询产品标题或内容,并使用价格区间进行过滤。查询到的结果是价格区间对了关键词查出来的并不是我要的关键词而是所有这个价格区间的产品。源码如下:

string keywords = q;
IndexSearcher search
= new IndexSearcher(indexDir);
q
= GetKeyWordsSplitBySpace(q, new ProductsIndex.ProductTokenizer());
QueryParser queryParser
= new QueryParser("contents", new ProductAnalyzer(true));
Query query
= queryParser.Parse(q);

QueryParser titleQueryParser
= new QueryParser("title", new ProductAnalyzer(true));
Query titleQuery
= titleQueryParser.Parse(q);

Query priceQuery
= NumericRangeQuery.NewDoubleRange("price", 10.0, 100.0, true, true);
BooleanQuery bq
= new BooleanQuery();
bq.Add(query, BooleanClause.Occur.SHOULD);
bq.Add(titleQuery, BooleanClause.Occur.SHOULD);
bq.Add(priceQuery, BooleanClause.Occur.MUST);
Hits hits
= search.Search(bq);

 

请大家指点下Lucene联合查询条件怎么组合,谢谢!
慕虎7371278
浏览 408回答 2
2回答

千巷猫影

有问题,百度一下

长风秋雁

SHOULD与MUST表示MUST,SHOULD失去意义;
打开App,查看更多内容
随时随地看视频慕课网APP