1.ES之从零开始 | 搜索建议 - 简介
自从个人博客数据意外丢失后,已经有一年没写过博客了。 觉得地下有点凉,是时候爬起来了,所以就有了这个系列的分享。
为什么要用搜索建议 ?
通过两个小例子,了解搜索建议主要功能:纠错(Did You Mean)和补全(Auto-complete).
- 手残党,有些时间在输入比较长的英文单词的时候总会有缺胳膊少腿的问题,是否可以通过技术来解决这类问题提升用户的体验?
- 公司里业务开发对Elasticsearch的query DSL 不是特别熟悉,若是纯手写,基本是无法完成正确查询语法的编写 ,但如果使用kibna却是可以写出正确的查询的。
相信通过上面两个例子,都了解了搜索建议的两个主要功能纠错和补全,为什么要使用也就迎刃而解了。 接下来,主要从技术和落地的维度来聊一聊搜索建议。
搜索建议的技术架构
- 纠错(Did You Mean)
- 用户在搜索框中输入有问题的词,elastisearch(少了个字母c )
- 由于少了个字母,倒排表里未找到相应的文档,所以返回的命中结果为0.
- 因为命中0结果,发送一个纠错请求,希望通过增加、删除、替换一个字符来取得一个系统里存在的词。
- 把纠错后的词发送到客户端
- 获取系统中存在的,最可能的纠错词。
- 选择正确的纠错词发送查询请求
- 返回希望的检索结果。
- 补全(Auto-Complete)
- 用户输入第一个字符
- 异步发送第一个字符尝试进行前缀补全
- 返回前缀被全词, 相同前缀的根据权重排序返回
- 选择下拉正确的补全词
- 根据正确的词,发送检索请求
- 返回期望的查询结果。
小结
- 纠错可以解决小范围输错的问题,增加容错率来提升用户体验。
- 补全,可以有效的减少用户输入,提升搜索的准确率。
[尊重社区原创,转载请保留或注明出处]
本文地址:http://elasticsearch.cn/article/14034
本文地址:http://elasticsearch.cn/article/14034