为了账号安全,请及时绑定邮箱和手机立即绑定

请教lucene 联合查询的问题

/ 猿问

请教lucene 联合查询的问题

慕虎7371278 2018-12-06 23:24:17

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联合查询条件怎么组合,谢谢!
查看完整描述

2 回答

?
慕运维1137616

有问题,百度一下

查看完整回答
反对 回复 2019-01-21
?
慕慕0277861

SHOULD与MUST表示MUST,SHOULD失去意义;

查看完整回答
反对 回复 2019-01-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信