ElasticSearch/NEST: определить, существует ли сопоставление
Я использую NEST-клиент для доступа к моим индексам / сопоставлениям ElasticSearch. Я пытаюсь определить, существует ли сопоставление, и если нет, создать новое сопоставление. Есть метод для IndexExistsAsync()
но, похоже, нет MappingExistsAsync()
метод. GetMappingAsync()
возвращает IGetMappingResponse
который имеет логическое значение IsValid
, что я думал, что смогу проверить, но звоню GetMappingAsync()
просто создает исключение, если сопоставление не существует. Я могу просто проверить, выбрасывается ли исключение, и создать сопоставление, но есть ли лучший способ справиться с этим?
2 ответа
Я понял. Проблема заключалась в том, что я настроил клиент на выдачу исключений при сбое вместо того, чтобы IsValid
быть тем, что определяет успех.
var connectionPool = new SingleNodeConnectionPool(node);
var settings = new ConnectionSettings(connectionPool)
.BasicAuthentication(username, password)
.DisableDirectStreaming()
.PrettyJson();
//.ThrowExceptions(); <-- This line had to be commented out.
Ты не должен использовать
TypeExists defined on the interface IElasticClient
Вместо?
Я имею в виду, если тип существует, отображение этого типа также существует.