这是我的弹性搜索的映射
{"MYAPP":{"mappings":{
"XX":{
"_ttl":{"enabled":true},
"properties":{"propX":{"type":"integer"}}
},
"YY":{
"_ttl":{"enabled":true},
"properties":{"propY":{"type":"integer"}}
},
}
}
}
我想要执行查询
propX:XYZ AND propY:ABC
问题是如果我这样做
propX:XYZ AND propY:ABC
它什么都不返回,但是这个
propX:XYZ
返回结果。我认为问题是propX
,propY
是两个不同的区域,这就是为什么使用两者都不返回。
这是我的JAVA代码:
SearchResponse response = client.prepareSearch("MYAPP")
.setQuery(QueryBuilders.queryString("propX:XYZ AND propY:ABC")).execute()
.actionGet();
答案 0 :(得分:1)
根据您的映射,propX
和propY
位于不同的映射类型中。
假设您遵循索引映射。每种映射类型都有自己的文档,换句话说,类型XX
内的所有文档只有propX
字段。并且YY
类型中的所有文档都只有propY
字段。
所以没有文件,同时有两个字段,这就是你找不到任何文件的原因。