我在elasticsearch中有以下文档:
{
"region": "US",
"manager": {
"age": 30,
"name": {
"first": "John",
"last": "Smith"
}
}
}
根据this page in documentation,内部对象也可以在不提供完整路径的情况下进行搜索。例如,我可以用first = John
向我展示文档。
这对我来说非常适用于1.5.2 开箱即用的但我最近迁移到2.3.2版本的弹性和非完全限定名称-based-search 已停止工作。现在我必须明确说出name.first = John
,因为文档中键的动态性,我不想这样做。
我已经尝试明确说明在声明映射时name是一个对象类型。还可以使用here和here {/ 3}}中的include_in_all
选项包含姓名。
有没有人知道如何在弹性搜索的2.3.2版本中使用它。如何仅通过first=John
而不是name.first=John
来搜索弹性内部字段。
答案 0 :(得分:1)
不幸的是,弹性搜索2.x已删除此功能(短名称)。
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/breaking_20_mapping_changes.html
这与确保无法创建冲突的映射以及减少歧义有关。