在一个应用程序中,我使用索引别名“my_alias”
通过Id(“doc1”和“doc2”)查询2个文档var multiGetRequest = new MultiGetRequest
{
Documents = new [] {
new MultiGetOperation<Product>("doc1") {Index = "my_alias" },
new MultiGetOperation<Product>("doc2") {Index = "my_alias" }
}
};
var result = client.MultiGet(multiGetRequest);
if (!response.IsValid){
throw new Exception();
}
var documents = result.Documents;
一切都很好,直到有人在Elasticsearch中使用别名混淆并向别名添加第二个索引。新索引还包含带有“doc1”和“doc2”的文档。
现在使用MultiGet将导致
Alias [,y_alias] has more than one indices associated
with it [[demo_index, demo_index2]], can't execute a single index op"
这是预期的 - 但是如何在使用MultiGet操作时捕获错误?
上面的代码仍会执行但没有任何错误,但现在返回无结果
任何提示都表示赞赏!
答案 0 :(得分:2)
这是NEST中的一个错误。
目前,客户端不会对error
数组中的项目的docs
属性进行反序列化,此外,在确定响应是否有效时不会考虑这些属性。 I've opened an issue to address this.