Elasticsearch + Nest:MultiGetRequests中忽略错误

时间:2017-10-11 07:28:02

标签: elasticsearch nest

在一个应用程序中,我使用索引别名“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操作时捕获错误?

上面的代码仍会执行但没有任何错误,但现在返回无结果

任何提示都表示赞赏!

1 个答案:

答案 0 :(得分:2)

这是NEST中的一个错误。

目前,客户端不会对error数组中的项目的docs属性进行反序列化,此外,在确定响应是否有效时不会考虑这些属性。 I've opened an issue to address this.