设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 贡献。

1.ES之从零开始 | 搜索建议 - 简介

Elasticsearch | 作者 Ricky_Lau | 发布于2020年07月22日 | | 阅读数:2947

1.ES之从零开始 | 搜索建议 - 简介

自从个人博客数据意外丢失后,已经有一年没写过博客了。 觉得地下有点凉,是时候爬起来了,所以就有了这个系列的分享。

为什么要用搜索建议 ?

通过两个小例子,了解搜索建议主要功能:纠错(Did You Mean)和补全(Auto-complete).

  1. 手残党,有些时间在输入比较长的英文单词的时候总会有缺胳膊少腿的问题,是否可以通过技术来解决这类问题提升用户的体验?
  2. 公司里业务开发对Elasticsearch的query DSL 不是特别熟悉,若是纯手写,基本是无法完成正确查询语法的编写 ,但如果使用kibna却是可以写出正确的查询的。

相信通过上面两个例子,都了解了搜索建议的两个主要功能纠错和补全,为什么要使用也就迎刃而解了。 接下来,主要从技术和落地的维度来聊一聊搜索建议。

搜索建议的技术架构

  • 纠错(Did You Mean)
    1. 用户在搜索框中输入有问题的词,elastisearch(少了个字母c )
    2. 由于少了个字母,倒排表里未找到相应的文档,所以返回的命中结果为0.
    3. 因为命中0结果,发送一个纠错请求,希望通过增加、删除、替换一个字符来取得一个系统里存在的词。
    4. 把纠错后的词发送到客户端
    5. 获取系统中存在的,最可能的纠错词。
    6. 选择正确的纠错词发送查询请求
    7. 返回希望的检索结果。
  • 补全(Auto-Complete)
    1. 用户输入第一个字符
    2. 异步发送第一个字符尝试进行前缀补全
    3. 返回前缀被全词, 相同前缀的根据权重排序返回
    4. 选择下拉正确的补全词
    5. 根据正确的词,发送检索请求
    6. 返回期望的查询结果。

小结

  • 纠错可以解决小范围输错的问题,增加容错率来提升用户体验。
  • 补全,可以有效的减少用户输入,提升搜索的准确率。

[尊重社区原创,转载请保留或注明出处]
本文地址:https://www.ksh17j.com/article/14034


0 个评论

要回复文章请先登录注册