在 Nest (Elasticsearch) 中,如何获取索引的原始 json 映射?

In Nest (Elasticsearch), how can I get the raw json mapping of an index?

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

只有:

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

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

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

然后我尝试了这个:

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

但是当我读取 res.Response 时,我得到一个 AmbiguousMatchException 异常。

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

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

那么您应该可以通过以下方式访问原始 json:

var json = res.ConnectionStatus.ResponseRaw;