假设我们的文本字段相对较短,假设最多10个字符,并另存为关键字。我希望我的用户能够对此字段进行前缀搜索(而不是自动填充/键入时搜索)。I have read on Elastic's documentation前缀查询的伸缩性很差,他们提供了一些示例来演示它。
什么时候可以使用前缀搜索,什么时候应该使用index-time edge-ngrams?构建和存储该字段的index-time edge-ngrams听起来很麻烦,但也许我缺少了一些东西。
首先第一件事:
关键字字段只能按其确切值进行搜索
因此,您不能前缀搜索定义为关键字类型的字段。前缀搜索仅适用于已分析的字段。
通常,前缀搜索的性能相对较差。您可以通过index_prefixes来改善其功能,但是即使这样操作还是比较密集的,所以如果您打算扩展业务,最好使用N-Grams,因为它可以更有效地利用资源。 。