ElasticSearch: Агрегирование с упорядочением по top_hits отличается количеством документов - PullRequest
0 голосов
/ 03 декабря 2018

Моя проблема в том, что при максимальной агрегации баллов, которая сортируется по _score, в сочетании с агрегацией терминов, отображается другое значение doc_count.

Вот тот блок агрегации, который я хочу, но с меньшим значением doc_countдля определенных результатов.Опять же, оно всегда дает меньшее значение;никогда не выше.

"aggs": {
  "group_by_field": {
    "terms": {
      "field": "field4",
      "order": {
        "max_score": "desc"
      }
    },
    "aggs": {
      "max_score": {
        "max": {
          "script": "_score"
        }
      }
    }
  }
}

Вот блок агрегации, который я не хочу, но показывает правильный doc_count для всех результатов.

"aggs": {
  "group_by_target": {
    "terms": {
      "field": "target"
    }
  }
}

Для тех, кто заинтересован, вот мой полныйосновной запрос:

{
    "index": "myIndex",
    "type": "myType",
    "body": {
        "query": {
            "bool": {
                "filter": {
                    0: {
                        "term": {
                            "term1": false,
                        }
                    }
                },
                "must": {
                    "bool": {
                        "should": {
                            0: {
                                "match_phrase": {
                                    "phrase1": "example",
                                }
                            }
                        },
                        "minimum_should_match": 1,
                    }
                }
            }
        },
        "size": 0,
        "_source": {
            0: "field1",
            1: "field2",
            2: "field3",
            3: "field4",
        },
        "aggs": {
            "group_by_field": {
                "terms": {
                    "field": "field4",
                    "size": 25,
                    "order": {
                        "max_score": "desc",
                    }
                },
                "aggs": {
                    "max_score": {
                        "max": {
                            "script": "_score",
                        }
                    },
                    "my_top_agg": {
                        "top_hits": {
                            "size": 3,
                            "_source": {
                                0: "field1",
                                1: "field2",
                                2: "field3",
                                3: "field4",
                            }
                        }
                    }
                }
            },
            "my_total": {
                "cardinality": {
                    "field": "field4",
                }
            }
        }
    }
}

Я протестировал оба запроса, и каждый раз при выводе агрегации он показывает одно и то же неверное значение doc_count.В чем причина проблемы?

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