Elasticsearch с двойным вложением не работает

Я пытаюсь выполнить агрегирование терминов в поле "AB", которое находится в "парах" (вложенный тип), в пределах "window_size" (вложенный тип)

Я попытался сделать Вложенную агрегацию, содержащую другую Вложенную агг, которая содержит мою Агрегацию Условий Я не получаю никаких результатов (запрос ниже).

Я также попытался сделать это с помощью одной вложенной агрегации в паре, содержащей агрегацию условий на AB, не сработало. Также попробовал это с вложенной аггой на window_size, не сработало.

Я использую Ruflin Elastica для построения запроса в PHP.

Определение индекса:

"_index": "ldna-2",
  "_type": "document",
  "_id": "A00007",
  "_version": 1,
  "_score": 1,
  "_source": {
    "window_size": [
      {
        "start": 0,
        "end": 50,
        "pairs": {
          "story_n-AScanius_n": {
            "A-B": "story_n-AScanius_n",
            "A": "story_n",
            "B": "AScanius_n",
            "AoccuranceBaseline": "91873",
            "ANodeOccuranceCorpus": "2408",
            "InWindow": "55417",
            "BaselineTotal": "281628304",
            "BoccuranceBaseline": "3",
            "BNodeOccuranceCorpus": "1",
            "ABPairOccuranceCorpus": "1"
          },
          "book_n-AScanius_n": {
            "A-B": "book_n-AScanius_n",
            "A": "book_n",
            "B": "AScanius_n",
            "AoccuranceBaseline": "527316",
            "ANodeOccuranceCorpus": "17747",
            "InWindow": "396063",
            "BaselineTotal": "281628304",
            "BoccuranceBaseline": "3",
            "BNodeOccuranceCorpus": "1",
            "ABPairOccuranceCorpus": "1"
          },
          "call_v-AScanius_n": {
            "A-B": "call_v-AScanius_n",
            "A": "call_v",
            "B": "AScanius_n",
            "AoccuranceBaseline": "1555723",
            "ANodeOccuranceCorpus": "48328",
            "InWindow": "561727",
            "BaselineTotal": "154622540",
            "BoccuranceBaseline": "3",
            "BNodeOccuranceCorpus": "1",
            "ABPairOccuranceCorpus": "2"
          },

Запрос:

"query" : {
    "range" : {
      "year" : {
        "from" : "1000",
        "to" : "2000",
        "include_lower" : true,
        "include_upper" : false,
        "boost" : 1.0
      }
    }
  },
  "aggregations" : {
    "NestedAggWindow" : {
      "nested" : {
        "path" : "window_size"
      },
      "aggregations" : {
        "NestedAggPairs" : {
          "nested" : {
            "path" : "window_size.pairs"
          },
          "aggregations" : {
            "A-B" : {
              "terms" : {
                "field" : "window_size.pairs.A-B.keyword",
                "size" : 10,
                "min_doc_count" : 1,
                "shard_min_doc_count" : 0,
                "show_term_doc_count_error" : false,
                "order" : [
                  {
                    "_count" : "desc"
                  },
                  {
                    "_term" : "asc"
                  }
                ]
              }
            }
          }
        }
      }
    }
  }

Elastica запрос:

      $nestedAggWindow = new Nested("NestedAggWindow", "window_size");

        $nestedAggPairs = new Nested("NestedAggPairs", "window_size.pairs");

          $termsAgg = new Terms("A-B");
          $termsAgg->setField("window_size.pairs.A-B.keyword");

        $nestedAggPairs->addAggregation( $termsAgg );

      $nestedAggWindow->addAggregation( $nestedAggPairs );

      $query->addAggregation( $nestedAggWindow );
      $search->setQuery($query);

0 ответов

Другие вопросы по тегам