如何本地reindex5.6的索引到7.x呢?只能remote-reindex吗?
zqc0512 回复了问题 • 3 人关注 • 2 个回复 • 2057 次浏览 • 2020-08-06 08:34
es中join类型使用has_child,基于子文档查询父文档,其中父文档的某些字段还需要做一些过滤如何实现
回复Jsen 发起了问题 • 1 人关注 • 0 个回复 • 2705 次浏览 • 2020-07-31 11:24
index分片数量均衡,但主分片分配不均
zxsapple 回复了问题 • 3 人关注 • 4 个回复 • 1680 次浏览 • 2020-08-13 13:35
是否可以禁止单个索引关闭
JingSQ 回复了问题 • 3 人关注 • 2 个回复 • 1255 次浏览 • 2020-08-06 20:04
ES SQL进行聚合topN的时候值不对
gxHu 回复了问题 • 5 人关注 • 6 个回复 • 2002 次浏览 • 2020-08-24 09:53
terms keyword 精确in查询很慢
Ombres 回复了问题 • 5 人关注 • 5 个回复 • 4699 次浏览 • 2020-07-24 15:32
ES在分配shard的时候设置了total_shards_per_node,分配规则出现问题?
viewsite 回复了问题 • 5 人关注 • 5 个回复 • 4398 次浏览 • 2020-08-07 10:39
elasticsearch 生成离线文档html没有css样式
FFFrp 回复了问题 • 3 人关注 • 1 个回复 • 1608 次浏览 • 2020-07-23 16:48
如何测试或查看ELK日志系统的吞吐量
匿名用户 回复了问题 • 2 人关注 • 2 个回复 • 2538 次浏览 • 2020-08-20 08:08
6.7.2版本es的脚本排序在循环数组时与想象中不一样
luman 回复了问题 • 2 人关注 • 2 个回复 • 1726 次浏览 • 2020-08-12 14:39
1.ES之从零开始 | 搜索建议 - 简介
Ricky_Lau 发表了文章 • 0 个评论 • 4616 次浏览 • 2020-07-22 18:59
1.ES之从零开始 | 搜索建议 - 简介
自从个人博客数据意外丢失后,已经有一年没写过博客了。
觉得地下有点凉,是时候爬起来了,所以就有了这个系列的分享。
为什么要用搜索建议 ?
通过两个小例子,了解搜索建议主要功能:纠错(Did You Mean)和补全(Auto-complete).
- 手残党,有些时间在输入比较长的英文单词的时候总会有缺胳膊少腿的问题,是否可以通过技术来解决这类问题提升用户的体验?

- 公司里业务开发对Elasticsearch的query DSL 不是特别熟悉,若是纯手写,基本是无法完成正确查询语法的编写
,但如果使用kibna却是可以写出正确的查询的。





相信通过上面两个例子,都了解了搜索建议的两个主要功能纠错和补全,为什么要使用也就迎刃而解了。
接下来,主要从技术和落地的维度来聊一聊搜索建议。
搜索建议的技术架构
- 纠错(Did You Mean)
- 用户在搜索框中输入有问题的词,elastisearch(少了个字母c )
- 由于少了个字母,倒排表里未找到相应的文档,所以返回的命中结果为0.
- 因为命中0结果,发送一个纠错请求,希望通过增加、删除、替换一个字符来取得一个系统里存在的词。
- 把纠错后的词发送到客户端
- 获取系统中存在的,最可能的纠错词。
- 选择正确的纠错词发送查询请求
- 返回希望的检索结果。
- 补全(Auto-Complete)
- 用户输入第一个字符
- 异步发送第一个字符尝试进行前缀补全
- 返回前缀被全词, 相同前缀的根据权重排序返回
- 选择下拉正确的补全词
- 根据正确的词,发送检索请求
- 返回期望的查询结果。
小结
- 纠错可以解决小范围输错的问题,增加容错率来提升用户体验。
- 补全,可以有效的减少用户输入,提升搜索的准确率。