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联合查询条件怎么组合,谢谢!
有问题,百度一下
SHOULD与MUST表示MUST,SHOULD失去意义;