一. 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搜索推荐
i. term suggester:根据词项的词频来推荐
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:最少的文档频率
i. direct_generator:phrase suggester使用候选生成器生成给定文本中每个项可能的项的列表。单个候选生成器类似于为文本中的每个单独的调用term suggester。生成器的输出随后与建议候选项中的候选项结合打分。目前只支持一种候选生成器,即direct_generator。建议API接受密钥直接生成器下的生成器列表;列表中的每个生成器都按原始文本中的每个项调用。
ii. highlight:高亮标签
pre_tag:起始标签,如
post_tag:闭合标签,如
i. Completion:es的一种特有类型,专门为suggest提供,基于内存,性能很高。
ii. prefix query:基于前缀查询的搜索提示,是最常用的一种搜索推荐查询。
prefix:客户端搜索词
field:建议词字段
size:需要返回的建议词数量
skip_duplicates:是否过滤掉重复建议,默认false
iii. fuzzy query
fuzziness:允许的偏移量,默认auto
transpositions:如果设置为true,则换位计为一次更改而不是两次更改,默认为true。
min_length:返回模糊建议之前的最小输入长度,默认 3
prefix_length:输入的最小长度(不检查模糊替代项)默认为 1
unicode_aware:如果为true,则所有度量(如模糊编辑距离,换位和长度)均以Unicode代码点而不是以字节为单位。这比原始字节略慢,因此默认情况下将其设置为false。
iv. regex query:可以用正则表示前缀,不建议使用
三. 地理位置搜索 疫情地图
a) geo_point:地理位置类型,经纬度坐标
i. latitude:维度 缩写:lat
ii. longitude:经度 缩写:lon
b) Geo-bounding box query:两个点确定一个矩形,搜索中间的点
i. top_left:矩形左上点坐标
ii. bottom_right:矩形右上角表