ElasticSearch Edge NGram vs Prefix查询

Dot*_*rog 6 prefix n-gram elasticsearch

假设我们有一个相对较短的文本字段,假设最多10个字符并保存为关键字.
我希望我的用户能够前缀搜索这个字段(不是自动完成/搜索你的类型).
我已经阅读过Elastic的文档,前缀查询的扩展性很差,并且它们提供了几个示例来演示它.

什么时候可以使用前缀搜索,什么时候应该使用index-time edge-ngrams?构建和存储此字段的索引时间edge-ngrams听起来过多,但也许我错过了一些东西.

小智 4

首先第一件事:

关键字字段只能按其确切值进行搜索

因此,您无法对定义为关键字类型的字段进行前缀搜索。前缀搜索仅适用于分析字段。

一般来说,前缀搜索的性能相对较差。您可以通过index_prefixes来改进它的功能,但即使如此,它也是相对密集的操作,因此如果您打算扩展业务,最好使用N-Grams,因为它的资源效率更高。