Возникают проблемы с получением результата с безболезненным сценарием - PullRequest
1 голос
/ 27 января 2020

Вот мое объединение:

"aggregations": {
"nested-econtext": {
  "nested": {
    "path": "econtext"
  },
  "aggregations": {
    "nested-name": {
      "terms": {
        "field": "econtext.name.raw",
        "size": 2147483647,
        "min_doc_count": 1,
        "shard_min_doc_count": 0,
        "show_term_doc_count_error": false,
        "order": [
          {
            "_count": "desc"
          },
          {
            "_key": "asc"
          }
        ]
      },
      "aggregations": {
        "nested-type": {
          "terms": {
            "field": "econtext.type",
            "size": 2147483647,
            "min_doc_count": 1,
            "shard_min_doc_count": 0,
            "show_term_doc_count_error": false,
            "order": [
              {
                "_count": "desc"
              },
              {
                "_key": "asc"
              }
            ]
          },
          "aggregations": {
            "other-fields": {
              "terms": {
                "script": {
                  "source": "if(doc['econtext.facets.key.raw'].size()!=0){doc['econtext.facets.key.raw'].value + '|' + doc['econtext.facets.value.raw'].value}",
                  "lang": "painless"
                }
              }
            }
          }
        }
      }
    }
  }
}

}

Сценарий здесь

"if(doc['econtext.facets.key.raw'].size()!=0){doc['econtext.facets.key.raw'].value + '|' + doc['econtext.facets.value.raw'].value}"

Однако у меня есть результаты

Вот пример того, что мы имеем в нашей БД

"econtext" : [
        {
          "name" : "Answering Machines",
          "type" : "T",
          "facets" : [
            {
              "key" : "domain",
              "value" : "product"
            }
          ]
        }

и вот что возвращается ...

{
        "key" : "Answering Machines",
        "doc_count" : 1,
        "nested-type" : {
          "doc_count_error_upper_bound" : 0,
          "sum_other_doc_count" : 0,
          "buckets" : [
            {
              "key" : "T",
              "doc_count" : 1,
              "other-fields" : {
                "doc_count_error_upper_bound" : 0,
                "sum_other_doc_count" : 0,
                "buckets" : [ ]
              }
            }
          ]
        }

Почему этот скрипт не возвращает "домен | продукт", так как показанный выше, он ничего не хранит в ведре, но я вижу это в БД. На самом деле, для всех возвращаемых данных все они возвращают пустые сегменты, когда не все пусты.

Однако не все документы содержат данные в массиве фасетов, поэтому я проверяю размер в скрипте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...