3

我想检查我当前的映射(如在我的 C# 代码中)和弹性搜索索引中的映射之间的差异。

只有:

var res = esClient.GetMapping<EsCompany>();

我在 c# 中得到GetMappingResponse对象,我将不得不逐个字段比较是否相等。更糟糕的是,每个字段都有自己的属性,我必须深入到这些属性中进行进一步比较。

在我的应用程序中,我更喜欢获取映射的原始 json,并且我可以轻松区分两个 json 对象是否相等。

然后我尝试了这个:

var res = esClient.Raw.IndicesGetMapping(myIndexName);

但是当我阅读时res.Response,我得到了一个AmbiguousMatchException例外。

4

1 回答 1

5

当您连接到 Elasticsearch 时,您可以选择像这样公开原始响应:

var client = new ElasticClient(new ConnectionSettings().ExposeRawResponse());

然后您应该能够通过以下方式访问原始 json:

var json = res.ConnectionStatus.ResponseRaw;
于 2015-07-25T12:37:47.263 回答