#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. Я не совсем понял, что вы имеете в виду, но я думаю, что это нормально делать в группах.