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搜索推荐
- 四种suggest:term suggester、phrase suggester、completion suggester、context suggester
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:最少的文档频率
- phrase suggester:phrase suggester和term suggester相比,对建议的文本会参考上下文,也就是一个句子的其他token,不只是单纯的token距离匹配,它可以基于共生和频率选出更好的建议。
i. direct_generator:phrase suggester使用候选生成器生成给定文本中每个项可能的项的列表。单个候选生成器类似于为文本中的每个单独的调用term suggester。生成器的输出随后与建议候选项中的候选项结合打分。目前只支持一种候选生成器,即direct_generator。建议API接受密钥直接生成器下的生成器列表;列表中的每个生成器都按原始文本中的每个项调用。
ii. highlight:高亮标签
pre_tag:起始标签,如
post_tag:闭合标签,如
- completion suggester:自动补全,自动完成,支持三种查询【前缀查询(prefix)/模糊查询(fuzzy)/正则表达式查询(regex)】
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:可以用正则表示前缀,不建议使用
- 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
ES之Highlight及Suggest搜索推荐详解相关推荐
- linux如何确定共享库路径,摘录Linux下动态共享库加载时的搜索路径详解
对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似"error while loading shared libraries"这样的错误,这是典型的因为需要的动态库不在动态链接器 ...
- Spring和Elasticsearch全文搜索整合详解
Spring和Elasticsearch全文搜索整合详解 一.概述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web ...
- 模糊匹配 读音_onenote搜索机制详解②:两种搜索模式,模糊与精确匹配
先从纯文本搜索讲起,这是最基本也是最重要的. 从这篇开始,以及接下来连续几篇文章,都会介绍搜索的基础功能.注意,这几篇文章中谈论的都是基本的.正常的搜索功能,暂时不考虑Bug等因素. 在很多软件(例如 ...
- 【干货】某视频app推荐详解.pdf(附下载链接)
今天给大家带来一份干货资料<某视频app推荐详解.pdf>,本文档包含推荐目标.推荐模型.推荐架构以及产品和运营相关的问题,文档已收录到小程序省时查报告中,大家可以到省时查报告小程序中查看 ...
- 搜索引擎高级搜索指令详解
在当今外贸竞争越来越惨烈的情况下,广大站长没有两把刷子是不行滴.学习外贸SEO就是一个方法. 当初凭借傻瓜式就可以赚取美金等外币的时代已经悄悄远去,当下如果要提高站点排名,提升外贸网站流量,那么必须使 ...
- DFS(深度优先搜索)详解(概念讲解,图片辅助,例题解释,剪枝技巧)
目录 那年深夏 引入 1.什么是深度优先搜索(DFS)? 2.什么是栈? 3.什么是递归? 图解过程 问题示例 1.全排列问题 2.迷宫问题 3.棋盘问题(N皇后) 4.加法分解 模板 剪枝 1.简介 ...
- DFS (深度优先搜索) 算法详解 + 模板 + 例题,这一篇就够了
深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法. 沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所在边都己被探寻过或者在搜寻时结点不 ...
- elasticsearch分布式搜索配置文件详解
2019独角兽企业重金招聘Python工程师标准>>> Elasticsearch是一个开源的分布式实时搜索与分析引擎,支持云服务.它是基于Apache Lucene搜索引擎的类库创 ...
- Linux下动态共享库加载时的搜索路径详解
对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似"error while loading shared libraries"这样的错误,这是典型的因为需要的动态库不在动态链接器 ...
最新文章
- Python学习——模块的基本知识
- 一天一个Linux基础命令之复制文件或目录命令cp
- 别人的Linux私房菜(17)进程管理与SELinux初探
- 【大会】延迟还能再低点吗?不能,但也能
- 华为鸿蒙系统正式登场,华为自研鸿蒙系统将于8月9日正式登场,还有全新的鸿鹄芯片...
- abap判断包含字符当中包含小数点_剑指Offer整理3 -- 栈和队列 + 数学和字符串
- memcached linux 配置文件,Linux下Memcached服务器部署 | 系统运维
- Wps的两种论文标注参考文献
- LINUX C/C++捕获段错误,打印出错的具体位置(精确到哪一行) ​ --Xilinx ARM版本
- scrapy爬虫实例:凤凰网
- Molecular weight相对分子质量
- 打造急速开发框架FastApp
- 将数组定义到SDRAM 当中使用
- android应用常见错误
- 嘀嗒出行的IPO备战
- 进入页面 element 校验规则 自动校验问题
- 华为交换机板卡端口型号对照
- 项目管理相关参数说明计算(PV、AC、EV、BAC、EAC、ETC等)
- c语言实心圆方程式,C语言做实心圆
- 【转】上海居住证和户口的区别
热门文章
- ESP8266智能灯控
- html元素设置四边框的顺序,互联网常识:html怎么设置边框
- 机器学习案例:运营商客户流失的数据分析 #数据去重#数据分组整合#缺失值处理#相关性分析#样本平衡#决策树、随机森林、逻辑回归
- Fedora 博通无线网卡 linux 驱动
- 交叉熵的物理意义及简单公式推导
- Newman介绍与安装
- KMP、BM、Sunday、Horspool、strstr字符串匹配算法的性能比较
- python中frame是什么意思_Python实例之wxpython中Frame使用方法
- 远程字典服务Redis,感谢B站黑马程序员,多多三连
- 【前端圭臬】五:CSS 核心机制——布局