ElasticSearch Edge NGram vs Prefix查询

时间:2017-10-23 14:10:56

标签: elasticsearch prefix n-gram

我们假设我们的文字字段相对较短,请说最多10个字符并保存为关键字。
我希望我的用户能够前缀搜索此字段(不是自动完成/搜索为您的类型) I have read on Elastic's documentation前缀查询的扩展性很差,并且它们提供了几个示例来演示它。

什么时候可以使用前缀搜索,什么时候可以使用index-time edge-ngrams?构建和存储此字段的索引时间edge-ngrams听起来过多,但也许我&# 39;我遗失了什么。

1 个答案:

答案 0 :(得分:0)

第一件事:

  

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

因此,您不能前缀搜索定义为关键字类型的字段。前缀搜索仅适用于已分析的字段。

通常,前缀搜索的性能相对较差。您可以通过 index_prefixes 来改善其功能,但是即使这样操作还是比较密集的,所以如果您打算扩展业务,最好使用 N-Grams < / strong>,因为它更节省资源。