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:根据 建议文本中的词项 推荐 任何匹配的建议词

这个就是不做任何限制

相关文章
|
1月前
Angular启动/node_modules/@types/node/index.d.ts (20,1): Invalid ‘reference‘ directive syntax.
Angular启动/node_modules/@types/node/index.d.ts (20,1): Invalid ‘reference‘ directive syntax.
35 2
|
8月前
|
开发框架 安全 前端开发
什么是 Angular 的 Active Support 版本和 Long Term Support 版本
什么是 Angular 的 Active Support 版本和 Long Term Support 版本
Multiple substitutions specified in non-positional format; did you mean to add BUG(7)
Multiple substitutions specified in non-positional format; did you mean to add BUG(7)
《Towards A Fault-Tolerant Speaker Verification System A Regularization Approach To Reduce The Condition Number》电子版地址
Towards A Fault-Tolerant Speaker Verification System: A Regularization Approach To Reduce The Condition Number
69 0
《Towards A Fault-Tolerant Speaker Verification System A Regularization Approach To Reduce The Condition Number》电子版地址
|
JavaScript 前端开发 开发者
Component name “xxx“ should always be multi-word
Component name “xxx“ should always be multi-word
Component name “xxx“ should always be multi-word
OPA 14 - search existing item by regular expression
Created by Wang, Jerry, last modified on Nov 08, 2015
OPA 14 - search existing item by regular expression
|
存储 测试技术 C++
use regular expression instead of ABAP function module to parse attachment
在做my task offline performanc improvement时,先参考BP代码,里面有一行call 下图的FM去将变量ls_key里存储的attachment information解析出来:
117 0
use regular expression instead of ABAP function module to parse attachment
|
SQL XML 缓存
《Orca: A Modular Query Optimizer Architecture for Big Data》
Orca: A Modular Query Optimizer Architecture for Big Data
《Orca: A Modular Query Optimizer Architecture for Big Data》
|
XML 分布式计算 算法
Orca: A Modular Query Optimizer Architecture for Big Data
在之前的几片paper笔记中,对最为主流的两套优化器框架进行了解读,包括bottom-up dynamic programming的search策略和基于Top-down memorization的search策略
335 0
Orca: A Modular Query Optimizer Architecture for Big Data
成功解决FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `ar
成功解决FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `ar