我想检查当前映射(如在我的C#代码中)与elasticsearch索引中的映射之间的差异。
仅限:
var res = esClient.GetMapping<EsCompany>();
我在c#中得到GetMappingResponse
对象,我将不得不逐字段地比较它是否相等。更糟糕的是,每个字段都有自己的属性,我必须进入这些属性以进行进一步比较。
在我的应用程序中,我更喜欢获取映射的原始json,并且我可以轻松区分两个json对象以获得相等。
然后我尝试了这个:
var res = esClient.Raw.IndicesGetMapping(myIndexName);
但是当我阅读res.Response
时,我会收到AmbiguousMatchException
个异常。
答案 0 :(得分:5)
当您连接到Elasticsearch时,您可以选择公开原始响应,如下所示:
var client = new ElasticClient(new ConnectionSettings().ExposeRawResponse());
然后你应该能够通过以下方式访问原始json:
var json = res.ConnectionStatus.ResponseRaw;