按需搜索数据类型和Edge NGram令牌生成器有什么区别?

时间:2019-09-08 02:04:42

标签: elasticsearch elasticsearch-mapping

无法理解将按类型搜索的数据类型设置为字段,在分析器中设置Edge NGram Tokenizer以及添加index_prefixes参数之间的区别。在我看来,他们毕竟做同样的工作。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-as-you-type.html https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-edgengram-tokenizer.html https://www.elastic.co/guide/en/elasticsearch/reference/current/index-prefixes.html

2 个答案:

答案 0 :(得分:1)

edge_ngram是一个令牌生成器,这意味着它会在索引编制时启动以令牌化您的输入数据。还有一个edge_ngram令牌过滤器。两者是相似的,但是在不同的级别上起作用。

search_as_you_type是一种字段类型,其中包含一些子字段,其中一个称为_index_prefix,并利用edge_ngram令牌生成器。

因此,基本上,在他们决定添加新的search_as_you_type字段类型时,实际上已经利用了edge_ngram标记化工具文档中看到的内容。

答案 1 :(得分:0)

Rafiqul 是正确的,search_as_you_go 是使用 edge_ngram 构建的,但它也包含了带状疱疹的概念。带状疱疹是词组,它允许 search_as_you_go 更好地处理多词查询。

请注意,search_as_you_go 要求单词按输入的顺序排列,这对于电影标题等已知实体尤其理想,而不是自由格式文档。