我正在使用NEST client来访问我的ElasticSearch索引/映射。我正在尝试确定映射是否已存在,如果没有创建新映射。 IndexExistsAsync()
有一种方法,但似乎没有MappingExistsAsync()
方法。 GetMappingAsync()
返回一个IGetMappingResponse
,它有一个布尔IsValid
,我认为我可能会检查,但如果映射不存在,则调用GetMappingAsync()
只会引发异常。我可以检查是否抛出异常并创建映射,但是有更好的方法来处理它吗?
答案 0 :(得分:1)
你不应该使用
In [138]: df.A = df.A.replace(r'([^\s])\[', r'\1 [', regex=True)
In [139]: df
Out[139]:
A
0 One [P]
1 Two [N]
相反?
我的意思是如果类型存在,那么该类型的映射也存在。
答案 1 :(得分:0)
我明白了。问题在于我设置了客户端以在失败时抛出异常,而不是让IsValid
成为决定成功的因素。
var connectionPool = new SingleNodeConnectionPool(node);
var settings = new ConnectionSettings(connectionPool)
.BasicAuthentication(username, password)
.DisableDirectStreaming()
.PrettyJson();
//.ThrowExceptions(); <-- This line had to be commented out.