elasticsearch,typeahead,Autocomplete,elasticsearch,Typeahead" /> elasticsearch,typeahead,Autocomplete,elasticsearch,Typeahead" />

Autocomplete 支持带ElasticSearch的typeahead自动完成

Autocomplete 支持带ElasticSearch的typeahead自动完成,autocomplete,elasticsearch,typeahead,Autocomplete,elasticsearch,Typeahead,是否有标准方法使用ElasticSearch对小字段(例如地名)实现逐字符的typeahead自动完成 (在撰写本文时,通过搜索可以进行大量讨论,但似乎没有什么明确的内容。(此外,我看到有人谈论Apache Lucene 4中对自动完成/建议的功能支持的效果。) 感谢您的想法。您可以使用基于Edge NGram的分析器,请参阅 或者使用建议插件: 正如David所写,您可以使用NGrams或建议插件。有了lucene 4,就有可能有更好的开箱即用的自动建议,而不需要保存单独的索引 目前,您还可以

是否有标准方法使用ElasticSearch对小字段(例如地名)实现逐字符的typeahead自动完成

(在撰写本文时,通过搜索可以进行大量讨论,但似乎没有什么明确的内容。(此外,我看到有人谈论Apache Lucene 4中对自动完成/建议的功能支持的效果。)


感谢您的想法。

您可以使用基于Edge NGram的分析器,请参阅

或者使用建议插件:


正如David所写,您可以使用NGrams或建议插件。有了lucene 4,就有可能有更好的开箱即用的自动建议,而不需要保存单独的索引

目前,您还可以在字段上创建一个标记,并使用正则表达式模式仅保留以相关前缀开头的条目:

"facets" : {
    "tag" : {
        "terms" : {
            "field" : "field_name",
            "regex" : "prefix.*"
        }
    }
}

正则表达式只是一个例子,可以对其进行改进,还可以使用适当的。此外,请注意,在包含许多独特术语的字段上创建方面不是一个好主意,除非您有足够的内存来存储它。

使用自0.90.3版起提供的内置自动完成提示器:


它的速度非常快,并且正是针对这个用例开发的。

BTW@simon新的完成前缀建议功能不是0.90.0,而是0.90.3(仍然被认为是实验性的)。True非常快,但与使用类似于mySQL的prefix*或Redis/CouchBase auto-complete相同。答案中的链接不再存在。这可能对新手有帮助!更新了文档链接和文本。