ElasticSearch/NEST:判断Mapping是否已经存在
ElasticSearch/NEST: Determine if Mapping already exists
我正在使用 NEST client 访问我的 ElasticSearch indexes/mappings。我试图确定一个映射是否已经存在,如果不存在则创建一个新映射。有 IndexExistsAsync()
的方法,但似乎没有 MappingExistsAsync()
的方法。 GetMappingAsync()
returns 一个 IGetMappingResponse
有一个布尔值 IsValid
,我想我可以检查,但是调用 GetMappingAsync()
只会抛出一个异常如果映射不存在。我可以检查是否抛出异常并创建映射,但是有更好的处理方法吗?
我明白了。问题是我已经将客户端设置为在失败时抛出异常,而不是让 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
相反?
我的意思是,如果类型存在,则该类型的映射也存在。
我正在使用 NEST client 访问我的 ElasticSearch indexes/mappings。我试图确定一个映射是否已经存在,如果不存在则创建一个新映射。有 IndexExistsAsync()
的方法,但似乎没有 MappingExistsAsync()
的方法。 GetMappingAsync()
returns 一个 IGetMappingResponse
有一个布尔值 IsValid
,我想我可以检查,但是调用 GetMappingAsync()
只会抛出一个异常如果映射不存在。我可以检查是否抛出异常并创建映射,但是有更好的处理方法吗?
我明白了。问题是我已经将客户端设置为在失败时抛出异常,而不是让 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
相反?
我的意思是,如果类型存在,则该类型的映射也存在。