Вот мой запрос ES:Elasticsearch возвращаются различные результаты
{
"fields": [
"news.authorname.raw",
"news.authorid"
],
"query": {
"filtered": {
"filter": {
"terms": {
"news.authorid": [
1,
2
]
}
}
}
}
}
С помощью этого запроса я получаю список пар {AuthorID, AUTHORNAME}. Этот список имеет повторяющиеся значения {authorid, authorname}, и мне просто нужно получить тот же список, но без повторений. Кажется, это не так сложно или, по крайней мере, это то, что я думал сегодня утром. Мое небольшое знание ES вместе с отсутствием документации заставляет меня отчаянно пытаться найти решение такой тривиальной проблемы.
Конечно, я мог бы получить весь список и удалить повторы с помощью кода, но если бы это было возможно, я бы предпочел не получать ненужные данные, чтобы удалить их после этого.
Любой может дать вам руку? Должен ли я использовать какой-то другой подход?
Спасибо заранее!
Взгляните на это [ответить] (https://stackoverflow.com/questions/24508191/elasticsearch-returning-only-documents-with-distinct-value) – notdang
Хорошо, я вижу, но означает ли это, что нет способ получить результат (массив «хиты»), отфильтрованные с различными значениями? Я имею в виду, мне нужно «выбрать отдельный» автор, поэтому массив «bucket» мне не пригодится (массив идентификаторов ничего не говорит в frontend), а массив «hits» по-прежнему содержит дублированные значения. Я начинаю думать, что мне нужно сделать это так и отфильтровать отдельные значения по коду. К настоящему моменту я сделаю это, но если кто-то может подтвердить, является ли это единственным способом или есть какое-то обходное решение, чтобы результаты были отфильтрованы прямо от результата ES, я бы очень признателен. Спасибо, btw !! – user3407868