#elasticsearch #nest
#elasticsearch #гнездо
Вопрос:
У меня есть проект, использующий Nest 7.x, и есть запрос, который мне нужно сделать к более старому индексу 5.x elasticsearch. Когда я выполняю подобный вызов, я получаю следующую ошибку. Я предполагаю, что это связано с тем, как типы отображения были изменены в версии 6 и выше. Есть ли какой-либо способ обойти это, чтобы запросить более старый индекс?
var result = _elasticClient.GetAsync<Category>(id)
Неверный ответ NEST, созданный на основе успешного (404) вызова низкого уровня на
ПОЛУЧАЕМ: /myindex/_doc/15437
Запрос: <Поток запроса не захвачен или уже прочитан сериализатором до завершения. Установите DisableDirectStreaming() в ConnectionSettings, чтобы
принудительно установить его в ответе.>
Ответ: {«_index»:»2020-01-13″, «_type»:»_doc», «_id»: «15437», «найдено»: false}
Комментарии:
1. Проблема в том, что
_type
в индексе этого нет_doc
?
Ответ №1:
В качестве обходного пути я сделал это, и, похоже, это сработало. Не уверен, есть ли какие-либо лучшие решения?
var response = _elasticClient.SearchAsync<Category>(s => s
.Query(q => q
.Bool(b => b
.Must(
bs => bs.Term(p => p.Id, id),
bs => bs.Term(p => p.Field("_type").Value("category"))
)
)
)
)