【发布时间】:2016-08-19 13:16:21
【问题描述】:
假设我有一个包含对象数组的根文档。 是否可以返回包含一组对象的文档?
例如:
文档 1
{
"name": "someName"
"date": "someDate"
"anArray" : [
{"key1": "value1", "key2":"value2"},
{"key1": "value3", "key2":"value4"}...]
}
文档 2
{
"name": "someOtherName"
"date": "someOtherDate"
"anArray" : [
{"key1": "value1", "key2":"value2"},
{"key1": "value4", "key2":"value3"}...]
}
我想要一个匹配并返回 Doc1 的查询:
在 anArray 中包含 key1 = value1 && key 2=value2 对象的文档,并且在 anArray 中也有 key1=value3 和 key2= value4 的对象
这可能吗?
【问题讨论】:
-
如果没有,除了做客户端连接和过滤器之外,是否有关于如何处理这些类型的用例的任何建议。是否可以通过管道过滤器来解决这个问题?例如:首先检索一个包含 Object Key1 & key2 values 为 value 1 & value 2 的文档列表。然后从结果中过滤掉 Objects with Key1 & Key 2 = value3 & value 4
-
这也不是嵌套对象查询。我不是要匹配 1。我要匹配多个。类似于:NEST1(match Key1,Key2,Value1,Value2) && NEST2(match key1,Key2,Value3,Value4)
-
如果您尝试匹配数组中的多个对象,那么您必须为该数组使用
nested数据类型。 -
我明白了,所以唯一的可能是这样做:即嵌套过滤器 1 -> 匹配“key1”、“value1”&&“key2”、“value2”。跟随嵌套过滤器 2 -> 匹配 "key1","value3", &&"key2","value4"
-
酷,很高兴它有帮助!
标签: elasticsearch