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

这个就是不做任何限制

相关文章
|
4月前
|
JavaScript
Component name “header“ should always be multi-word
Component name “header“ should always be multi-word
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)
什么是 Angular library 的 secondary entry points?
什么是 Angular library 的 secondary entry points?
《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
85 0
《Towards A Fault-Tolerant Speaker Verification System A Regularization Approach To Reduce The Condition Number》电子版地址
|
Web App开发 Ubuntu jenkins
Running Firefox as root in a regular user's session is not supported 问题解决
Running Firefox as root in a regular user's session is not supported 问题解决
803 0
Running Firefox as root in a regular user's session is not supported 问题解决
|
存储 测试技术 C++
use regular expression instead of ABAP function module to parse attachment
在做my task offline performanc improvement时,先参考BP代码,里面有一行call 下图的FM去将变量ls_key里存储的attachment information解析出来:
136 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策略
380 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