当前位置: 首页 > 面试题库 >

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

秦鸿羽
2023-03-14
问题内容

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

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


问题答案:

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

该标记器与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)。



 类似资料:
  • 问题内容: 我正在尝试使用Elasticsearch来实现自动完成功能,因为我知道该怎么做… 我正在尝试在索引已爬网数据时使用ES的edge_n_grams建立多词(短语)建议。 a 和a 之间有什么区别-我已经阅读了有关这些文档,但仍需要更多了解…。 例如,token_filter是ES用来针对用户输入进行搜索的内容吗?ES用于制作令牌的令牌生成器是吗?什么是代币? ES是否可以使用其中任何一种

  • 主要内容:Apache Ant令牌过滤器示例令牌过滤器允许我们在复制时过滤文件中的数据。 要进行过滤,需要使用一个必须与过滤器任务中的设置匹配的标记。 任务使用作为标记分隔符。 为了实现此功能,Apache Ant提供了使用属性的。 此功能仅应与文本文件一起使用。下面来看看Apache Ant令牌过滤器属性: 属性 描述 必要 它是没有分隔符字符(@)的标记字符串。 Y 这是一个字符串,应该在复制文件时替换令牌。 Y 必须从中读取过滤器的文

  • 我在Elasticsearch 7.10中创建了一个索引,如下所示: 如您所见,我配置了一个名为my_analyzer的自定义分析器,该分析器应用了令牌过滤器。基于文档,我希望这个过滤器在索引时从文档的所有类型属性中删除英语stopwords。 事实上,如果我向http://localhost:30200/my_index/_analyze使用此请求主体: 我得到一个响应,表明令牌、、和已从提供的

  • 我试图创建自己的StopFilter实现,它将根据其他字段选择术语。 是否有一种方法可以从标记筛选器访问文档,然后访问其他字段? (我想使用UpdateRequestProcessor来通知我的TokenFilter关于状态的信息,但我没有找到很好的方法) 谢谢,本尼

  • 在我的ElasticSearch数据集中,我们有用句点分隔的唯一ID。样本编号可能类似于C.123.5432 这就是我将其复制到的字段(它也有ngram分析器): 从某种意义上说,这是我用来查看搜索是否有效的命令(请注意它正在搜索“meta_data”字段):

  • 因此,从本页的文档来看,似乎我可以用令牌生成器、令牌过滤器和字符过滤器构建一个自定义瞬态分析器,并使用Analyze API对我的示例文本进行测试。 目标是,我想看看同义词令牌过滤器是否满足我的需求,即哪些术语被标记为同义词,哪些不满足。 但是当我这么做的时候 curl-XGET'localhost:9200/u分析?char\u filters=html\u条 我得到的不是结果,而是 知道我做错