Использование Elasticsearch Nest 7.x для запроса индекса 5.x

#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"))
                        )
                    )
                )
            )