C# 使用NEST客户端获取Elasticsearch类型映射名称
在Nest client版本<2.0的情况下,可以获得索引的所有类型映射的列表,包括映射的名称。在Nest version>2.0中,这似乎是不可能的。可以返回映射列表,但不包括名称。例如,我使用以下代码获取映射列表:C# 使用NEST客户端获取Elasticsearch类型映射名称,c#,
elasticsearch,nest,C#,
elasticsearch,Nest,在Nest client版本2.0中,这似乎是不可能的。可以返回映射列表,但不包括名称。例如,我使用以下代码获取映射列表: var response = elasticClient.GetMapping<object>(mapping => mapping.Index("index.name").AllTypes()); var response=elasticClient.GetMapping(mapping=>mapping.Index(“Index.name”).All
var response = elasticClient.GetMapping<object>(mapping => mapping.Index("index.name").AllTypes());
var response=elasticClient.GetMapping(mapping=>mapping.Index(“Index.name”).AllTypes());
来自elasticsearch的原始响应包含映射名称,但来自Nest客户端的响应不包含映射名称。它只包含映射中的属性列表。您知道如何使用Nest client version>2.0实现这一点吗?2019年,使用Nest 6.4.1和Elasticsearch 5.5,可以列出如下类型:
var response = client.GetMapping<object>(mapping => mapping.Index(currentIndex).AllTypes());
IEnumerable<Nest.TypeName> keys = response.Indices.Values.First().Mappings.Keys;
foreach(var key in keys)
{
Console.WriteLine(key.ToString());
}
var response=client.GetMapping(mapping=>mapping.Index(currentIndex.AllTypes());
IEnumerable keys=response.index.Values.First().Mappings.keys;
foreach(var键入键)
{
Console.WriteLine(key.ToString());
}
在您的代码行前放置一个选项卡,将其格式化为代码。您使用的是哪一版本的NEST,您的目标是哪一版本的Elasticsearch?这看起来像一个bug;我为它添加了一个问题: