Я занимаюсь поиском автозаполнения с помощью elasticsearch, поэтому мне нужно запросить 3 указателя posts
, comments
, authors
. У меня есть следующий запрос:Elasticsearch - сортировать запрос с несколькими индексами
{
"query":{
"query_string":{
"query":"something"
}
}
}
вызов:
curl -X GET 'http://localhost:9200/posts,comments,authors/_search?pretty' -d '{
"query": {
"query_string": {
"query": "something"
}
}
}'
Мне нужно отсортировать результаты по конкретным полям индекса, например:
сообщений индекс имеет поле под названием comments_count
, комментарии votes_count
и авторами posts_count
. При сравнении сообщений, он должен сортироваться по comments_count
, когда комментарии затем votes_count
, когда авторы затем posts_count
.
Можно сделать что-то подобное? Я не хотел бы объединять индексы в один, поскольку они индексируют совершенно разные документы.
«Если я сортирую по полю, которое отсутствует во всех индексах, документы не будут возвращены». Это контролируемо. См. Http://www.elasticsearch.org/guide/reference/api/search/sort/. В вашем случае вы, вероятно, должны использовать '{" missing ":" _last "}' –