Term Suggester 中 suggest_mode 的三种模式missing、popular、always 的区别

简介: Term Suggester 中 suggest_mode 的三种模式missing、popular、always 的区别

1、Term Suggester

term suggester 正如其名,只基于 tokenizer 之后的单个 term 去匹配建议词,并不会考虑多个term之间的关系

POST <index>/_search
{ 
  "suggest": {
    "<suggest_name>": {
      "text": "<search_content>",
      "term": {
        "suggest_mode": "<suggest_mode>",
        "field": "<field_name>"
      }
    }
  }
}

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

  • missing:默认值,仅为不在索引中的词项生成建议词
  • popular:仅返回与搜索词文档词频或文档词频更高的建议词
  • always:根据 建议文本中的词项 推荐 任何匹配的建议词


2、suggest_mode 详细解释

2.1 missing

missing:suggest_mode 的默认值,仅为不在索引中的词项生成建议词


如过参数值为 missing,那么此时如过搜索词命中了任何一个索引,都不会产生任何推荐词,只有当未命中任何索引的时候,才会产生推荐词,比如下图例子中。


搜索词中包含两个词项:baoqing 和 baoqiang 其中第一个词项没有命中任何索引,即在源数据中,没有任何词项和其匹配。所以会产生推荐词。这也是仅为不在索引中的词项生成建议词的含义。而第二个词项 baoqiang 是命中了索引的,即源数据中有某个词项被命中了,因此不产生任何推荐。missing 和文档频率没有任何关系



11.png


2.2 popular

popular:仅返回与搜索词文档词频或文档词频更高的建议词


此时推荐词不会管你是不是被搜索词命中,但是推荐结果会被以下两个参数影响:


min_doc_freq:即文档频率阈值,只返回文档频域大于设定值的推荐词。在推荐词中,只返回 freq 值大于等于该参数设定值的推荐词

max_term_freq: 即词频阈值,只有词频数量小于设定值的词项,才会有推荐词。这个参数缺省值为 1,因为官网文档中未做说明,再者 term suggester 本身不是重点,所以在视频里没有提到。

注意以上两个参数,一个是词频,一个是文档频率。一个是最小阈值,一个是最大阈值。如下图例子


12.png

2.3 always

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

这个就是不做任何限制

相关文章
Curl指定源端口访问网站
Curl指定源端口访问网站
10742 5
|
人工智能 自然语言处理 搜索推荐
智能语音助手的发展与未来:开启人机交互的新篇章
智能语音助手的发展与未来:开启人机交互的新篇章
2133 28
|
JSON 自然语言处理 Java
ElasticSearch 实现分词全文检索 - 搜素关键字自动补全(Completion Suggest)
ElasticSearch 实现分词全文检索 - 搜素关键字自动补全(Completion Suggest)
566 1
|
SQL 存储 运维
阿里云分布式关系型数据库服务 DRDS
DRDS 是阿里巴巴集团自主研发的分布式数据库中间件产品,专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,稳定运行11年,经历历届双十一核心交易业务和各类行业业务的考验
14688 0
|
数据采集 设计模式 自然语言处理
设计模式最佳套路2 —— 愉快地使用管道模式
管道模式(Pipeline Pattern) 是责任链模式(Chain of Responsibility Pattern)的常用变体之一。在管道模式中,管道扮演着流水线的角色,将数据传递到一个加工处理序列中,数据在每个步骤中被加工处理后,传递到下一个步骤进行加工处理,直到全部步骤处理完毕。 PS:纯的责任链模式在链上只会有一个处理器用于处理数据,而管道模式上多个处理器都会处理数据。
13337 0
设计模式最佳套路2 —— 愉快地使用管道模式
|
架构师 前端开发
上篇:技术架构的设计方法
技术思考本质还是结构化思考,所以常见的结构化思考方法也是适用的。这也是大家会看到很多技术架构师都会用一些方法论去分析问题的原因。但这里我不是重新去论述这些常见的技巧,而是分享从技术实战中得到的一些思考方法,为此我分为了技术架构设计的方法和技术 Leader 的思考方法两类。
1255 77
上篇:技术架构的设计方法
|
存储 自然语言处理 算法
倒排索引:ES倒排索引底层原理及FST算法的实现过程(一)
倒排索引:ES倒排索引底层原理及FST算法的实现过程
倒排索引:ES倒排索引底层原理及FST算法的实现过程(一)
|
存储 缓存 算法
倒排索引:ES倒排索引底层原理及FST算法的实现过程(二)
倒排索引:ES倒排索引底层原理及FST算法的实现过程(二)
倒排索引:ES倒排索引底层原理及FST算法的实现过程(二)
|
人工智能
码栈PRO助力三只松鼠,全面提升电商运营效率,赋能品牌发展
全新码栈Pro助力商家降本增效,实现电商自动化。三只松鼠引入码栈Pro,进行批量重复规律性的日常操作,实现工作效率成倍提升。
码栈PRO助力三只松鼠,全面提升电商运营效率,赋能品牌发展
|
存储 算法 对象存储
倒排索引:ES倒排索引底层原理及FST算法的实现过程(三)
倒排索引:ES倒排索引底层原理及FST算法的实现过程(三)
倒排索引:ES倒排索引底层原理及FST算法的实现过程(三)