Подтвердить что ты не робот

Получение общей временной частоты по всему индексу (Elasticsearch)

Я пытаюсь вычислить общее количество раз, когда определенный термин встречается во всем индексе (частота сбора семплий). Я попытался сделать это с помощью векторов термина, однако это ограничивается одним документом. Даже в случае терминов, которые существуют в пределах указанного документа, ответ кажется максимальным на определенном doc_count (в поле_статистике), что заставляет меня сомневаться в его точности.

Запрос:

http://myip:9200/clinicaltrials/trial/AVmk-ky6XMskTDwIwpih/_termvectors?term_statistics=true

Идентификатор документа, используемый здесь, - "AVmk-ky6XMskTDwIwpih", хотя термин статистика не должен быть специфичным для документа.

Ответ:

Это то, что я получаю за термин "рак" для одного из полей:

 "cancer" : {
      "doc_freq" : 5297,
      "ttf" : 10587,
      "term_freq" : 1,
      "tokens" : [
        {
          "position" : 15,
          "start_offset" : 115,
          "end_offset" : 121
        }
      ]
    },

Если я суммирую ttf для всех полей, я получаю 18915. Однако фактическая общая частота термина "рак" на самом деле равна 542829. Это заставляет меня полагать, что это ограничивает статистику term_vector подмножеством документов внутри индекс.

Любые советы здесь будут очень признательны.

4b9b3361

Ответ 1

Причиной разницы в счете является то, что термин-векторы не точны, если только указанный индекс не имеет единого осколка. Для индексов с множественными осколками документы распределяются по всем осколкам, поэтому возвращаемая частота не является суммой, а случайным образом выбранным осколком.

Таким образом, возвращаемая частота является лишь относительной мерой, а не абсолютным значением, которое вы ожидаете. см. раздел "Поведение" . Чтобы проверить это, вы можете создать единый индекс осколков и запросить частоту (он должен дать вам фактическое значение).

Ответ 2

Я считаю, что вам нужно превратить term_statistics в true по документация elasticsearch:

Срок статистики Установка term_statistics в true (по умолчанию false) вернет

общая временная частота (как часто термин встречается во всех документах)

частота документа (количество документов, содержащих текущий термин)

По умолчанию эти значения не возвращаются, поскольку статистика терминов может иметь серьезное влияние на производительность.