0

需要特定 ES 查询的帮助。我在弹性搜索索引中有对象。其中之一的示例(参与者):

{
        "_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"
              }..
4

1 回答 1

0

我让您尝试做的是在同一对象的多个字段中搜索一段文本的完全匹配,所以请尝试一下: https ://www.elastic.co/guide/en/elasticsearch/guide/current /multi-query-strings.html

于 2016-08-12T14:49:28.380 回答