我需要列出Elasticsearch中的所有索引和类型。
基本上我使用_client.stats().Indices
来获取索引,并使用foreach
排除索引列表进行过滤,如下所示:
public Dictionary<string, Stats> AllIndexes()
{
_client = new ElasticClient(setting);
var result = _client.Stats();
var allIndex = result.Indices;
var excludedIndexList = ExcludedIndexList();
foreach (var index in excludedIndexList)
{
if (allIndex.ContainsKey(index)) allIndex.Remove(index);
}
return allIndex;
}
这是从Elasticsearch中列出所有索引的正确方法吗?或者有更好的方法吗?
5条答案
按热度按时间eoxn13cs1#
GetIndexAsync
从Assembly Nest, Version=7.0.0.0
中删除从Version=7.0.0.0
中删除您可以使用以下命令:sauutmhj2#
这是可行的,一种稍微性感的写作方式是在result.Indices上使用
.Except()
。另一种方法是使用
.CatIndices()
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cat-indices.html
u4vypkhs3#
代码
Assembly Nest, Version=6.0.0.0
如下你将得到结果在
result.Indices.Keys
字符串列表kcrjzv8t4#
在Version=7.0.0.0中,方法GetIndexAsync不再接受null。解决方案:
mqxuamgl5#
以防万一有人还在寻找...与巢7.* 我结束了: