Lucene分词查询
在使用Lucene进行分词查询时遇到如下需求:
当用户输入“李宁 羽毛球”时,需要查出数据库中同时满足“李宁”和“羽毛球”两个条件的商品记录(即要求应该是与的关系)。
在项目中使用的是IKAnalyzer分词器,但是查出来的结果是却是或的关系,即查询出的结果可能只“李宁”或者“羽毛球”的记录,比如会出现“胜利羽毛球“相关的记录或者“李宁球鞋”相关的记录。
这样的问题如何解决?在Lucene中如何进行“与查询”?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
谢谢推荐~
如何进行查询,主要是看你在拼接query条件的时候怎么使用条件组合方式。
除了需要注意进行索引创建所使用的分词和查询所使用的分词一致之外,到没别的了。
既然在使用lucene给你推荐个其他的,也许你以后会使用到,solr很不错的东西。
http://wiki.apache.org/solr/ 创建索引更简单,查询的时候,可以直接拼接条件用and和or这种形式
SolrQuery query = new SolrQuery();
query.setQuery("admindivCode:[" + down + " TO " + up+ "] AND name:" + business_name + "");
基于lucene的,放心使用!呵呵
analyzer就是IK的了,上面除了这个是IK的,其余都是lucene的,setDefaultOperator(QueryParser.AND_OPERATOR)就搞定分词后的“与”了,IK只是用来分词,查还是lucene自己去查的好。
上面只到Query,后面怎么继续应该不用我说了吧,还是上面说的,IK只是用来分词。。。
应该是自定义分词规则吧
红薯这个是多个查询域的与关系查询,分词的与查询还是和上面那个同学说的~
与查询:
analyzer就是IK的了,上面除了这个是IK的,其余都是lucene的,setDefaultOperator(QueryParser.AND_OPERATOR)就搞定分词后的“与”了,IK只是用来分词,查还是lucene自己去查的好。
上面只到Query,后面怎么继续应该不用我说了吧,还是上面说的,IK只是用来分词。。。