2016-12-02 73 views
0

我想知道添加自定義分析儀作爲一個屬性,這將讓我自動映射,而不是彈性搜索巢2.x的客戶端手動映射的方式自定義分析 - 基於屬性的映射 - 鳥巢2.X

例子: 我有一個模型

公共類員工 {

[String] 
    public string FName {get; set;} 

    [String(Analyzer = "my_analyzer")] 
    public string EmployeeId { get; set; } 
} 

在哪裏定義my_analyzer,以便它可以自動映射?

回答

0

您可以在創建索引時定義分析儀。

public void CreateIndex(string indexName) 
{ 
    // Define the analyzer 
    var customAnalyzer = new CustomAnalyzer(); 
    customAnalyzer.Tokenizer = "my_tokenizer"; // add a tokenizer 
    customAnalyzer.Filter = new List<string>(); 
    customAnalyzer.Filter.ToList().Add("lowercase"); // add some filters 

    // Add the analyzer to your index settings 
    var request = new CreateIndexRequest(indexName); 
    request.Settings.Analysis.Analyzers = new Analyzers(); 
    request.Settings.Analysis.Analyzers.Add("my_analyzer", customAnalyzer); 

    // Create the index 
    ElasticClient nestClient = new ElasticClient(); 
    var indexResponse = nestClient.CreateIndex(request); 
}