ES之Highlight及Suggest搜索推荐详解

一. Highlight高亮查询

a) 三种高亮:

i. unified highlighter:默认的高亮方式,使用Lucene的实现方式

ii. plain highlighter:性能较高,消耗少量内存,性价比高

iii. fast vactor highlighter 适合字段较大,较复杂的查询情况

b) 自定义标签

i. pre_tag:起始标签,如

ii. post_tag:结束标签,如

c) 参数设置:https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html

d) 注意

i. 每个高亮字段都需要对应一个查询

二. Suggest搜索推荐

  1. 四种suggest:term suggester、phrase suggester、completion suggester、context suggester

i. term suggester:根据词项的词频来推荐

  1. 重要参数:

a) text:用户搜索的文本

b) field:要从哪个字段选取推荐数据

c) analyzer:使用哪种分词器

d) size:每个建议返回的最大结果数

e) sort:如何按照提示词项排序,参数值只可以是以下两个枚举:

i. score:分数>词频>词项本身

ii. frequency:词频>分数>词项本身

f) suggest_mode:搜索推荐的推荐模式,参数值亦是枚举:

i. missing:默认值,仅匹配不在索引中的词项

ii. popular:仅推荐比原始推荐词项文档词频(doc count)更高的相似词项

iii. always:根据 建议文本中的词项 推荐 任何匹配的建议词

g) max_edits:可以具有最大偏移距离候选建议以便被认为是建议。只能是1到2之间的值。任何其他值都将导致引发错误的请求错误。默认为2

h) prefix_length:前缀匹配的时候,必须满足的最少字符

i) min_word_length:最少包含的单词数量

j) min_doc_freq:最少的文档频率

  1. phrase suggester:phrase suggester和term suggester相比,对建议的文本会参考上下文,也就是一个句子的其他token,不只是单纯的token距离匹配,它可以基于共生和频率选出更好的建议。

i. direct_generator:phrase suggester使用候选生成器生成给定文本中每个项可能的项的列表。单个候选生成器类似于为文本中的每个单独的调用term suggester。生成器的输出随后与建议候选项中的候选项结合打分。目前只支持一种候选生成器,即direct_generator。建议API接受密钥直接生成器下的生成器列表;列表中的每个生成器都按原始文本中的每个项调用。

ii. highlight:高亮标签

  1. pre_tag:起始标签,如

  2. post_tag:闭合标签,如

  1. completion suggester:自动补全,自动完成,支持三种查询【前缀查询(prefix)/模糊查询(fuzzy)/正则表达式查询(regex)】

i. Completion:es的一种特有类型,专门为suggest提供,基于内存,性能很高。

ii. prefix query:基于前缀查询的搜索提示,是最常用的一种搜索推荐查询。

  1. prefix:客户端搜索词

  2. field:建议词字段

  3. size:需要返回的建议词数量

  4. skip_duplicates:是否过滤掉重复建议,默认false

iii. fuzzy query

  1. fuzziness:允许的偏移量,默认auto

  2. transpositions:如果设置为true,则换位计为一次更改而不是两次更改,默认为true。

  3. min_length:返回模糊建议之前的最小输入长度,默认 3

  4. prefix_length:输入的最小长度(不检查模糊替代项)默认为 1

  5. unicode_aware:如果为true,则所有度量(如模糊编辑距离,换位和长度)均以Unicode代码点而不是以字节为单位。这比原始字节略慢,因此默认情况下将其设置为false。

iv. regex query:可以用正则表示前缀,不建议使用

  1. context suggester:完成建议者会考虑索引中的所有文档,但是通常希望提供由某些条件过滤和/或增强的建议。

三. 地理位置搜索 疫情地图

a) geo_point:地理位置类型,经纬度坐标

i. latitude:维度 缩写:lat

ii. longitude:经度 缩写:lon

b) Geo-bounding box query:两个点确定一个矩形,搜索中间的点

i. top_left:矩形左上点坐标

ii. bottom_right:矩形右上角表

参考文章:http://www.ysxbohui.com/article/25

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YT博烩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值