Я использую отфильтрованный запрос с сортировкой. Когда я запускаю запрос с помощью плагина браузера, он работает нормально. Но когда я использовать Java-клиент, который поставляется с ElasticSearch, я получаю ошибкуПолучение SearchPhaseExecutionException с использованием ElasticSearch Java-клиента
org.elasticsearch.action.search.SearchPhaseExecutionException: Не удалось выполнить фазы [ДФС], все осколки не удалось; shardFailures
Вот запрос Thats время запуска
{
"from": 0,
"size": 50,
"query": {
"filtered": {
"query": {
"bool": {
"must": {
"bool": {
"should": [
{
"match": {
"_all": {
"query": "Happy Pharrel Williams",
"type": "boolean"
}
}
},
{
"flt": {
"fields": [
"name",
"artists",
"genre",
"albumName"
],
"like_text": "Happy Pharrel Williams"
}
}
]
}
}
}
},
"filter": {
"bool": {
"must": {
"or": {
"filters": [
{
"range": {
"releaseInfo.us": {
"from": null,
"to": "2015-07-22T23:16:12.852Z",
"include_lower": true,
"include_upper": true
}
}
},
{
"and": {
"filters": [
{
"missing": {
"field": "releaseInfo.us"
}
},
{
"range": {
"releaseInfo.WW": {
"from": null,
"to": "2015-07-22T23:16:12.851Z",
"include_lower": true,
"include_upper": true
}
}
}
]
}
}
]
}
}
}
}
}
},
"fields": [],
"sort": [
{
"popularity.US": {
"order": "asc",
"missing": 999
}
},
{
"_score": {}
}
] }
Я понимаю, что ошибка звучит как поле я сортировочного на это не хватает в некоторых индексов. Но я предоставил «отсутствующий» вариант в своем роде, и запрос выполняется очень хорошо, когда я запускаю из плагина главы браузера ES.
Вы видите что-то не так с структурой запроса или чем-то еще с Java-клиентом?
Я получаю исключение, потому что я использовал сортировку в поле, которое не существовало в определенном количестве индексированных документов. Я повторно проиндексировал все документы, и он сработал. – snegi