2016-03-07 80 views
0

我正在使用NEST client來訪問我的ElasticSearch索引/映射。我試圖確定一個映射是否已經存在,如果沒有創建一個新的映射。有一個方法IndexExistsAsync(),但似乎沒有一個MappingExistsAsync()方法。 GetMappingAsync()返回一個IGetMappingResponse,它有一個布爾值IsValid,我想我可以檢查,但如果映射不存在,調用GetMappingAsync()只會引發異常。我可以檢查是否引發異常並創建映射,但有沒有更好的方法來處理這個問題?ElasticSearch/NEST:確定映射是否已存在

回答

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. 
1

你不應該使用

TypeExists defined on the interface IElasticClient 

呢?

我的意思是如果類型存在,該類型的映射也存在。

相關問題