【发布时间】:2016-01-28 10:18:18
【问题描述】:
是否可以仅使用字段的部分路径(而不是完全限定路径)对弹性搜索进行过滤查询。
例如,我的映射如下所示:
{
"library" : {
"properties":{
"name" : {
"type":"string"
},
"address" : {
"properties":{
"city" : {
"type":"string"
}
}
}
}
}
}
如果我对“name”字段或“libary.name”字段(具有有效值)进行过滤查询,我会按预期返回结果。但是,如果我对“address.city”或“city”进行过滤查询,我不会得到任何结果;我必须将标签命名为“library.address.city”。
我找不到任何解释此行为的文档。有什么建议可以让我的过滤查询适用于“address.city”,就像它已经适用于“name”一样?
这行得通
{
"query": {
"filtered": {
"query": {
"term": {
"name" : "xyz"
}
}
}
}
}
这不起作用(或改为“address.city”)
{
"query": {
"filtered": {
"query": {
"term": {
"city" : "xyz"
}
}
}
}
}
谢谢!
【问题讨论】:
-
解决方案有效吗?
标签: elasticsearch