Elasticsearch 6.x Как создать индекс - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть приложение, которое отлично работает в течение многих лет.Недавно я был вынужден перейти с 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?Я уверен, что то, что я сделал, пока не сработает.

Спасибо!

...