Suggester变化

完成提示器已经过完全重写。这意味着类型completion字段的语法和数据结构已更改,完成suggester请求的语法和响应也已更改。有关详细信息,请参阅完成提示

对于在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": [ {...} ]
}