Elasticsearch учитывает лайки при выполнении агрегации significant_terms с оценкой функции

#elasticsearch

#elasticsearch

Вопрос:

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

   body: {
    query: {
      bool: {
        filter: { 
          "range": {
            "created": {
              gte: new Date().getWeek(new Date().getWeek() - 1)
            }
          }
        }
      }
    },
    "aggregations": {
      "tags": {
        "terms": { "field": "tags" },
      }
    }
  }
  

Однако вместо подсчета баллов на основе наиболее используемых тегов я хотел бы использовать его для тегов в сообщениях, которые имеют много лайков, на основе поля «likes» типа int.

Может кто-нибудь показать мне, как объединить оценки функции с агрегациями, пожалуйста? Спасибо.

Комментарии:

1. Я не думаю, что смогу это решить, но просто хотел попробовать. Пожалуйста, не могли бы вы добавить, какой результат вы получаете в / С, каков ваш ожидаемый результат?

2. @SowjanyaRBhat Просто ищет список тегов, он отсортирован atm по количеству элементов в каждой корзине, а не по каким-либо свойствам этих элементов.

Ответ №1:

Еще раз прочитав документацию, я совершенно уверен, что это на самом деле невозможно с помощью elasticsearch, и для этого требуется другое решение.

 Available parameters in the script are

_subset_freq

Number of documents the term appears in the subset.

_superset_freq

Number of documents the term appears in the superset.

_subset_size

Number of documents in the subset.

_superset_size

Number of documents in the superset.
  

Вы не можете получить доступ к документам при выполнении сценариев агрегации значимых терминов.

Комментарии:

1. @Johnny, возможно, не уверен, как это сделать. Вы можете помочь?

2. Я не совсем понял, что вы имеете в виду, но я думаю, что это нормально делать в группах.