一尘不染

边缘ngram令牌过滤器与ngram令牌过滤器有何不同?

elasticsearch

由于我是elasticsearch的新手,因此我无法识别 ngram令牌过滤器edge ngram令牌过滤器 之间的 区别

两者在处理令牌方面有何不同?


阅读 196

收藏
2020-06-22

共1个答案

一尘不染

我认为文档对此非常清楚:

该标记器与nGram非常相似,但仅保留从标记开头开始的n-gram。

nGram标记器的最佳示例再次来自文档

curl 'localhost:9200/test/_analyze?pretty=1&analyzer=my_ngram_analyzer' -d 'FC Schalke 04'


    # FC, Sc, Sch, ch, cha, ha, hal, al, alk, lk, lke, ke, 04

使用此标记生成器定义:

                    "type" : "nGram",
                    "min_gram" : "2",
                    "max_gram" : "3",
                    "token_chars": [ "letter", "digit" ]

简而言之:

  • 令牌生成器将根据令牌的配置来创建令牌。在这个例子中:FCSchalke04
  • nGram从输入文本生成最小min_gram大小和最大max_gram大小的字符组。基本上,令牌被分成小块,每个块都锚定在一个字符上(这个字符在哪里都无所谓,所有这些都会创建块)。
  • edgeNGram所做的相同,但块总是从每个令牌的开头开始。基本上,块固定在令牌的开头。

对于相同的文字的上方,一个edgeNGram产生这样的:FC, Sc, Sch, Scha, Schal, 04。考虑文本中的每个“单词”,对于每个“单词”,第一个字符都是起点(Ffrom FCSfrom Schalke0from
04)。

2020-06-22