2016-08-12 65 views
0

需要有关特定ES查询的帮助。 我在Elastic Search索引处有对象。他们(参与者)的一个实例:弹性搜索。按子收集值搜索

{ 
     "_id": null, 
     "ObjectID": 6008, 
     "EventID": null, 
     "IndexName": "crmws", 
     "version_id": 66244, 
     "ObjectData":    { 
      "PARTICIPANTTYPE": "2", 
      "STATE": "ACTIVE", 
      "EXTERNALID": "01010111", 
      "CREATORID": 1006, 
      "partAttributeList":    
      [ 
       { 
       "SYSNAME": "A", 
       "VALUE": "V1" 
       }, 
       { 
       "SYSNAME": "B", 
       "VALUE": "V2" 
       }, 
       { 
       "SYSNAME": "C", 
       "VALUE": "V2" 
       } 
      ], 
      .... 

我需要找到partAttributeList实体的唯一实体(S)。例如,在partAttributeList的同一个实体中,具有SYSNAME = A,VALUE = V1的整个Participant实体。

如果我使用美国UL比赛:

{"match": {"ObjectData.partAttributeList.SYSNAME": "A"}}, 
{"match": {"ObjectData.partAttributeList.VALUE": "V1"}} 

当然,我会找到比我真的需要更多的对象。冗余对象的实例,可以发现:

   ... 
       { 
       "SYSNAME": "A", 
       "VALUE": "X" 
       }, 
       { 
       "SYSNAME": "B", 
       "VALUE": "V1" 
       }.. 
+0

您需要'partAttributeList'作为'嵌套'字段。我从你的帖子中认为它不是。 –

回答