弹性搜索。按子集合值搜索

时间:2016-08-12 14:37:05

标签: elasticsearch subquery parent-child subobject

需要特定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实体找到唯一的实体。例如,在partAttributeList的同一实体中具有SYSNAME = A,VALUE = V1的整个Participant实体。

如果我使用usul匹配:

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

当然,我会找到比我真正需要的更多的物品。可以找到的冗余对象示例:

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

1 个答案:

答案 0 :(得分:0)

我所要做的就是搜索同一个对象的多个字段以获得一段文字的完全匹配,所以请试试这个:   https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-query-strings.html

相关问题