首页 > 解决方案 > Elasticsearch Nest 6 - 获取索引元数据

问题描述

目前,我可以从 Kibana 上的以下命令中检索索引映射元数据

GET /[indexName]/_mapping/[documentType]

有没有办法在 Elasticsearch Nest Client 上做到这一点?如果没有,我还有什么其他选择?

标签: elasticsearchnest

解决方案


你可以用

var defaultIndex = "default-index";
var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));

var settings = new ConnectionSettings(pool)
    .DefaultIndex(defaultIndex);

var client = new ElasticClient(settings);

var mappingResponse = client.GetMapping<MyDocument>();

这将向

GET http://localhost:9200/default-index/_mapping/mydocument

在这种情况下

  • index将是"default-index",连接设置上配置的默认索引
  • type将是"mydocument",从 POCO 类型推断MyDocument

如果您愿意,可以明确指定索引和/或类型

var mappingResponse = client.GetMapping<MyDocument>(m => m
    .Index("foo")
    .Type("bar")
);

它发送以下请求

GET http://localhost:9200/foo/_mapping/bar

以及针对所有索引和/或所有类型

var mappingResponse = client.GetMapping<MyDocument>(m => m
    .AllIndices()
    .AllTypes()
);

它发送以下请求

GET http://localhost:9200/_mapping

推荐阅读