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

lucene 检索做到输入一个 “甲” 将甲相关的都检索出来 并且如果 有 “甲" 这个字段 那他排到最前

lucene 检索做到输入一个 “甲” 将甲相关的都检索出来 并且如果 有 “甲" 这个字段 那他排到最前

大话西游666 2019-02-26 14:43:20
我的索引有三个字段 Doc1---名称:甲苯别名:无水甲苯;甲基苯编号:534-07-6 Doc2---名称:甲苯-2,4-二异氰酸酯别名:2,4-TDI;2,4-二异氰酸甲苯酯;甲苯-2,4-二异氰酸酯;甲苯基-2,4-二异氰酸酯;2,4-二异氰 酸酯甲苯;甲苯 2,4-二异氰酸酯 编号:584-84-9 就比如这两个字段,我搜“甲苯” 条件是这三个字段都检索,那么lucene 的排序是按照检索得分来排,那么Doc2得分最多因为出现 ‘甲苯’ 最多所以排在最前,但关键词是甲苯 ,客户希望找的就是甲苯 Doc1 问题就是如何让最相似的排在最前。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我用solr。
1,可以给不同域设置不同的域激励因子,从而降低因为次要域出现过多关键字过分影响结果。
2,可以通过(关键字出现次数/该域包含单词数)来提高doc1的排序。 具体操作你再查查。

查看完整回答
反对 回复 2019-03-01
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

生成索引时加上: document.setBoost(100); //自定义评分,如100
查询时使用: org.apache.lucene.search.function.FieldScoreQuery;

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 506 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号