Elasticsearch升级2.3.1 Nest客户端Raw String

Dav*_*ell 5 elasticsearch nest

升级到弹性2.3.1时,我遇到了.Net Nest Client的问题.

在Nest 1.0中,我可以从文件中读取索引的设置,并使用原始字符串在创建时配置索引.有没有办法在Nest 2.0中使用类似的东西,还是必须为包括分析部分在内的每个设置使用流畅的API?映射的问题相同.

Nest 1.0

private bool CreateIndex(string index, FileInfo settingsFile)
{
    var settings = File.ReadAllText(settingsFile.FullName);

    IElasticsearchConnector _elastic
    var response = _elastic.Client.Raw.IndicesCreate(index, settings);

    if (!response.IsValid)
    {
        //Logging error
        return false
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 5

ElasticClient.Raw已重命名为ElasticClient.LowLevel.

这是您在NEST 2.x中撰写请求的方法.

_elastic.Client.LowLevel.IndicesCreate<object>(indexName, File.ReadAllText("index.json"));
Run Code Online (Sandbox Code Playgroud)

index.json文件内容:

{
    "settings" : {
        "index" : {
            "number_of_shards" : 1,
            "number_of_replicas" : 1
        },
        "analysis" : {
            "analyzer" : {
                "analyzer-name" : {
                    "type" : "custom",
                    "tokenizer" : "keyword",
                    "filter" : "lowercase"
                }
            }
        },
        "mappings" : {
            "employeeinfo" : {
                "properties" : {
                    "age" : {
                        "type" : "long"
                    },
                    "experienceInYears" : {
                        "type" : "long"
                    },
                    "name" : {
                        "type" : "string",
                        "analyzer" : "analyzer-name"
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.