Nest Client c# 7.0 用于弹性搜索删除别名

Posted

技术标签:

【中文标题】Nest Client c# 7.0 用于弹性搜索删除别名【英文标题】:Nest Client c# 7.0 for elastic search removing Aliases 【发布时间】:2019-10-08 17:08:56 【问题描述】:

因此,随着 Elastic Search 6 的最新更新,C# 客户端也得到了升级。但是我不知道如何使用新的 Client Nest 7 以新的方式编写这段代码。我只需要重写这段代码

            var indexExists = Client.IndexExists(CurrentAliasName).Exists;

        Client.Alias(aliases => 
            if (indexExists)
            
                var oldIndices = Client.GetIndicesPointingToAlias(CurrentAliasName);
                var indexName = oldIndices.First().ToString();

                //remove alias from live index
                aliases.Remove(a => a.Alias(CurrentAliasName).Index("*"));
            
            return aliases.Add(a => a.Alias(CurrentAliasName).Index(CurrentIndexName));
        );

【问题讨论】:

【参考方案1】:

API 已移至 API 分组中

var client = new ElasticClient();   
var CurrentAliasName = "alias_name";
var CurrentIndexName = "index_name";

var indexExists = client.Indices.Exists(CurrentAliasName).Exists;

client.Indices.BulkAlias(aliases =>

    if (indexExists)
    
        var oldIndices = client.GetIndicesPointingToAlias(CurrentAliasName);
        var indexName = oldIndices.First().ToString();

        //remove alias from live index
        aliases.Remove(a => a.Alias(CurrentAliasName).Index("*"));
    
    return aliases.Add(a => a.Alias(CurrentAliasName).Index(CurrentIndexName));
);

您还可以参考Nest.7xUpgradeAssistant 包并继续使用与 6.x 中相同的方法来帮助迁移到 7.x。您将收到带有消息的编译器警告,指示新 API 方法的位置。

【讨论】:

以上是关于Nest Client c# 7.0 用于弹性搜索删除别名的主要内容,如果未能解决你的问题,请参考以下文章

为弹性搜索指定和使用带有 C# NEST 客户端的 NGramTokenizer

使用 NEST 字段提升的弹性搜索

NEST 搜索整个文档 C# Elasticsearch

多词搜索 NEST C#

将对象序列化为 JSON,然后使用 NEST 在弹性搜索中发送查询

NEST 中的模拟 Elasticsearch 客户端存在异步搜索方法问题