在 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;
我想检查当前映射(如在我的 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;