2015-01-21 4 views
1

Я запрашиваю Elasticsearch, чтобы получить список из 50 подходящих сайтов. В идеале я бы хотел получить 50 соответствующих матчей из 50 разных сайтов.Как ограничить результаты поиска elastics по термину

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

Возможно ли создать запрос, который возвращает 50 результатов, которые являются уникальными в отношении поля, в котором хранится имя веб-сайта?

ответ

0

Самый простой и лучший способ сделать это идти вперед, чтобы использовать вершину хит-агрегатор:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html

Подход, который я использовал, прежде чем топ хитов агрегатор определенно хак, но на удивление хорошо работал. Просто запросите 10x количество требуемых документов и скройте клиентскую сторону, предпочтительно используя клиент узла, чтобы уменьшить сетевые издержки на вероятную большую полезную нагрузку.

Смежные вопросы