elasticsearch - Search-as-you-type 数据类型和 Edge NGram Tokenizer 之间有什么区别?
问题描述
无法理解将 Search-as-you-type 数据类型设置为字段、在分析器中设置 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
解决方案
edge_ngram 是一个分词器,这意味着它在索引时开始对您的输入数据进行分词。还有一个 edge_ngram 令牌过滤器。两者相似,但工作水平不同。
search_as_you_type 是一种包含几个子字段的字段类型,其中一个称为 _index_prefix 并利用了 edge_ngram 标记器。
所以基本上,当他们决定添加新的 search_as_you_type 字段类型时,实际上已经利用了您在 edge_ngram 标记器文档中看到的内容。
推荐阅读
- php - 为什么 PHP 函数只在 mysqli_fetch 上返回一个值?
- maven - 无法在 Karaf 中加载捆绑包
- python - 如何分隔条形图中的条形并为 sorted(bookp) 中的所有项目打勾?
- python - 尝试在 for 循环中使用带有 lambda 表达式的 python map 函数来解决
- .htaccess - 如何将 HTML 索引文件重定向到子文件夹目录?
- javascript - 如何使用jspdf在.HTML中设置顶部和底部边距
- apache-spark - 陷入关于 pyspark --master yarn 的开始
- javascript - 我的 json api fetch 似乎不起作用,我应该对数据使用什么?
- css - 所有触发 CSS 转换的伪类
- c# - 如何在 Xamarin Forms 中每 x 秒调用一次方法 x 时间?