搜索框搜索不自动清空_elastic 搜索建议suggester 自动补全 搜索词推荐

什么是搜索建议

现代搜索引擎中都会提供搜索建议的功能,帮助用户在输入搜索的过程中,进行自动补全或纠错。协助用户输入更加精确的词,提高后续搜索文档的匹配程度。

在elastic中通过suggester api来实现

将输入的文本分解成token,然后在索引的词典里查找相似的term并返回。

根据不同场景,elastic设计了4中不同的suggesters

1.Term & Phrase Suggester

2.Complete & Context Suggester

一、term suggester

suggester是一种特殊类型的搜索,text里是搜索的文本,用户搜索lucen是一个错误的拼写,不存在的,到字段body上搜索,当无法搜索到结果时(missing),返回建议的词。

0e9ad71aa6cc5a6327c8e9012c4544b4.png

几种suggest model

1.missing 如果搜索索引中存在,就不提供建议

2.popular 推荐出现频率更高的词

3.always 无论是否存在都提供建议

演示案例:

f6bd1b6df4e67b2e112116aafe692a2e.png

插入一些数据用于测试

使用missing

73acb9e0985c7d7484628ae8c4fbfd2e.png

lucen 这个词拼写错误,索引里没有,就给出了推荐lucene,然而rock没有给出推荐,是因为索引里面有值。

eee42dd55cf059c50cf92fb752af2568.png

使用popular

53e4981c1957c27dae6ecd963acc8f02.png

推荐了lucen 和 rocks两个词,rocks在索引里出现的频率更高,所以推荐了rocks这个词。

100eafa8afc622ed0c43b890d942a2b9.png

使用always

bfbeb6ec7a957849ac7e057ea726467c.png
9e83aa06b37d9d25e6c40a7f555b6a9e.png

我们可以通过配置一系列的选项,来均衡灵活和性能:

  • max_edits:最大编辑距离候选建议可以具有以便被视为建议。只能是介于1和2之间的值。任何其他值都会导致抛出错误的请求错误。默认为2。
  • prefix_length:必须匹配的最小前缀字符的数量才是候选建议。默认为1.增加此数字可提高拼写检查性能。
  • min_doc_freq:建议应出现的文档数量的最小阈值。可以指定为绝对数字或文档数量的相对百分比。这可以仅通过建议高频项来提高质量。默认为0f且未启用。如果指定的值大于1,则该数字不能是小数。分片级文档频率用于此选项。
  • max_term_freq:建议文本令牌可以存在的文档数量的最大阈值,以便包括在内。可以是表示文档频率的相对百分比数(例如0.4)或绝对数。如果指定的值大于1,则不能指定小数。默认为0.01f。这可用于排除高频术语的拼写检查。高频术语通常拼写正确,这也提高了拼写检查的性能。分片级文档频率用于此选项。

小结,term suggester首先将输入文本经过分析器(所以,分析结果由于采用的分析器不同而有所不同)分析,处理为单个词条,然后根据单个词条去提供建议,并不会考虑多个词条之间的关系。然后将每个词条的建议结果(有或没有)封装到options列表中。最后由建议器统一返回。

二、Phrase Suggester

在text suggester基础上增加了一些逻辑和一些参数。

f52eba1433ebe0e61eb91967f42d6c21.png
eadcb434c80c14a8ea7baebcc006b298.png
88deba95ecc9417d6701b79ca35218ef.png

三、Complete Suggester (自动补全)

96287b838413ec3459455e15fae2ca58.png
a5f7421aaf37c1ca910e565bdf08ffa9.png
b28258addb7262a95138dce61752b5a7.png

搜索elk,然后下面给自动补全推荐结果。

2e1ef247108e939c0f95effde1f34491.png
775b94edc61181d6c999946eaf7bc00a.png

四、Context Suggester (基于上下文的提示)

c17779ed5bb8fbae5ce25e64eac2a7f2.png
2828a82043a23f4ebbfcedf3bffc6f7b.png
86842eab60ffcce53ede865937eddef4.png
512c839216b34172de9f747ea4a5dcee.png

四中类型使用总结

cacc4f5afbee5093d7a7fb84e215a978.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值