ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Suggester变化 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_suggester.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_suggester.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260769](http://www.apache.wiki/pages/viewpage.action?pageId=4260769) 贡献者 : [片刻](/display/~jiangzhonglian) 完成提示器已经过完全重写。这意味着类型completion字段的语法和数据结构已更改,完成suggester请求的语法和响应也已更改。有关详细信息,请参阅[完成提示](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-suggesters-completion.html)。 对于在Elasticsearch 5.0.0之前创建的索引,completion字段和完成提示符将继续按照在Elasticsearch 2.x中的方式工作。但是,不可能对在2.x中创建的索引和在5.x中创建的索引运行完成建议符查询。 强烈建议在5.x中重新索引包含2.x completion字段的索引,以利用下面列出的新功能。 注意 Note 在重建索引时,您将需要更改完成字段值的结构。 ## 完成建议是接近实时的 以前,即使在刷新索引后,已删除的建议也可能包含在结果中。现在,删除在接近实时的时间是可见的,即一旦索引被刷新。这适用于上下文和完成建议者的建议条目。 ## 完成建议书是面向文档的 建议知道他们所属的文档。现在,相关文档(_source)作为completion建议的一部分返回。 重要 _source元字段必须启用,这是默认行为,以启用返回_source与建议。 以前,context和completion建议者支持索引时间payloads选项,用于存储和返回带有建议的元数据。现在,元数据可以被存储为与在查询时检索的建议相同的文档的一部分。已删除对索引时间payloads的支持,以避免使用建议元数据膨胀内存索引。 ## 更简单的完成索引 由于建议是面向文档的,因此建议元数据(例如 output)现在应被指定为文档中的字段。删除建议索引条目索引时指定output的支持。现在建议结果条目的text总是建议input的未分析值(与在5.0之前的索引中索引建议时不指定output相同)。 ## 具有多个上下文的完成映射 completion字段映射中的context选项现在是一个数组,用于支持每个completion字段的多个命名contexts 。注意,这是糖用于索引不同名称下不同上下文的相同建议。已删除命名context的default选项。现在,在没有context的情况下针对启用上下文的完成字段进行查询,得到来自所有索引建议的结果。请注意,匹配所有上下文查询的性能会随给定completion字段的唯一context值的数量而降低。 ## 具有多个上下文过滤的完成建议 之前在建议请求中的context选项用于通过context值过滤建议。现在,该选项已命名为上下文以指定多个命名contexts过滤器。请注意,5.0之前的索引不支持。以下是通过颜色和位置上下文过滤的建议查询的contexts片段: ``` "contexts": { "color": [ {...} ], "location": [ {...} ] } ```