У меня есть приложение, которое отлично работает в течение многих лет.Недавно я был вынужден перейти с Elasticsearch v5 на v6.У меня много кода .NET C #, в котором для взаимодействия с Elasticsearch используются API-интерфейсы Elasticsearch.Net и Elasticsearch для низкого уровня .NET.
Я нашел список всех критических изменений .
Теперь мне нужна дополнительная справка и пример кода.
В v5 я создал такой индекс:
var LowLevelClient = new ElasticLowLevelClient(_Settings);
var indexName = "MyIndexName";
PostData jsonPostData = CreateMappingJson(entityId);
var result = LowLevelClient.IndicesCreate<Object>(indexName, jsonPostData);
if (!result.Success)
На странице вышеПри внесении изменений, вы увидите следующее: Удалено: IndicesCreate (String, PostData, Func) Добавлено: IndicesCreate (String, PostData, CreateIndexRequestParameters)
Я рад перейти на новый метод, но я неТ понять.Должен ли я создать свой собственный класс, который наследует от IElasticsearchResponse?Что-то вроде этого?
public class MyResponse : IElasticsearchResponse
{
public MyResponse()
{
}
public IApiCallDetails ApiCall { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public bool TryGetServerErrorReason(out string reason)
{
throw new NotImplementedException();
}
}
Если я сделаю это, то смогу обновить свой исходный код следующим образом:
var result = LowLevelClient.IndicesCreate<MyResponse>(indexName, jsonPostData);
if (!result.ApiCall.Success)
Это приводит к ошибкам компилятора.
Мой вопрос: как должен выглядеть мой класс MyResponse?Я уверен, что то, что я сделал, пока не сработает.
Спасибо!