我正在阅读本网站上的文档:https://www.elastic.co/guide/en/elasticsearch/guide/current/complex-core-fields.html#_how_inner_objects_are_indexed
我对这一段感兴趣:
内部字段可以通过名称引用(例如,第一个)。要区分具有相同名称的两个字段,我们可以使用完整路径(例如,user.name.first)或甚至类型名称加上路径(tweet.user.name.first)。 所以如果我有链接的文档站点的例子:
{
"gb": {
"tweet": {
"properties": {
"tweet": { "type": "string" },
"user": {
"type": "object",
"properties": {
"id": { "type": "string" },
"gender": { "type": "string" },
"age": { "type": "long" },
"name": {
"type": "object",
"properties": {
"full": { "type": "string" },
"first": { "type": "string" },
"last": { "type": "string" }
}
}
}
}
}
}
}
}
根据文档我应该能够使用条件最后搜索:无论,但它不起作用。我总是必须使用完整路径 user.last:whatever 。文档是假的还是我对它的理解?请注意,最后只发生在内部对象中,因此理论上不需要完整路径来引用它。
编辑:
查询有效:
get /my_index/_search?q=user.name.last:test
查询不起作用,但应根据文档:
get /my_index/_search?q=last:test