你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
huigy
赞同来自:
wengqiankun - es新手
feiyalun
Jinyang Zhou - 菜鸡如我
trycatchfinal
UnigroupAi - 高级Elasticsearch工程师
Tyler
要回复问题请先登录或注册
java 工作者
7 个回复
huigy
赞同来自:
wengqiankun - es新手
赞同来自:
一个是建词典,根据 输入词和词典的关联显示下拉词
另一个手机搜索记录,根据搜索词推荐用户使用最多的搜索词
然后就是业务优化的问题了
feiyalun
赞同来自:
Jinyang Zhou - 菜鸡如我
赞同来自:
1. 用 trie tree 来实现,脱离 ES。搜索建议的来源是你自己的搜索 log,或者是业务的文本。
2. 用 ES 检索,但是检索出现的问题就是你刚才说的有的比较长的会排在前面,这些排在前面的出现的根本问题是排序不合理,所以你可以用 script 重新排序,比如自己再创建一个 fields 来表示这个长度,然后算分的时候,用(99999-长度)*原始分,或者取负值*原始分这样,通过这样的方法来干扰原生的 BM25 排序。
trycatchfinal
赞同来自:
UnigroupAi - 高级Elasticsearch工程师
赞同来自:
Tyler
赞同来自:
通过业务层面抽取比较流行和转化好的关键字来单独建立联想词索引,然后用 prefix term 来查询联想词索引
[搜索引擎关键字智能提示的一种实现](https://tech.meituan.com/pinyin-suggest.html)