2017-02-02 4 views
0

NEST v.5を使用してインデックスを作成する正しい方法は何ですか?私は同様の投稿をここに見ました:Specifying and using a NGramTokenizer with the C# NEST client for Elastic Search。しかし、APIが変更されたようです。私は次のようにすることができます:カスタムアナライザを使用してElasticSearch NEST v.5クライアントのインデックスを作成する方法は?

ConnectionSettings settings = new ConnectionSettings(new Uri("http://localhost:9200")); 

IndexSettings indexSettings = new IndexSettings(); 
      CustomAnalyzer customAnalyzer = new CustomAnalyzer(); 

customAnalyzer.Tokenizer = "mynGram"; 
      customAnalyzer.Filter = new List<string> { "lowercase" }; 

      indexSettings.Analysis.Analyzers.Add("mynGram", customAnalyzer); 
      indexSettings.Analysis.Tokenizers.Add("mynGram", 
                new NGramTokenizer 
                { 
                 MaxGram = 10, 
                 MinGram = 2 
                }); 

elasticClient = new ElasticClient(settings); 

      elasticClient.CreateIndex("taskmanager", s => s 
       .Settings(sett => sett 
        .Analysis(a => a 
         .Analyzers(anl => anl 
          .Custom("customAnalyzer", c => c 
           // how to set my custom analyzer? 
           .Tokenizer("mynGram") 

          ) 
         ) 
        ) 
       ) 
      ); 

問題は、流暢なAPIを使用して設定を行う方法がわかりません。

答えて

1

私はブログで答えを見つけました:

IndexSettings indexSettings = new IndexSettings(); 
CustomAnalyzer customAnalyzer = new CustomAnalyzer(); 

その後、我々は、カスタム・アナライザに、当社のトークナイザとフィルタを設定する必要があります。私は、インデックスの設定やカスタムアナライザを作成する必要がELASTIC SEARCH : CREATE INDEX USING NEST IN .NET

最初。

customAnalyzer.Tokenizer = "mynGram"; 
      customAnalyzer.Filter = new List<string> { "lowercase" }; 

      indexSettings.Analysis.Analyzers.Add("mynGram", customAnalyzer); 
      indexSettings.Analysis.Tokenizers.Add("mynGram", 
                new NGramTokenizer 
                { 
                 MaxGram = 10, 
                 MinGram = 2 
                }); 

私の間違いは私の設定が含まれているIndexStateを使用しなかったことでした。

IndexState indexConfig = new IndexState 
{ 
    Settings = indexSettings 
}; 

elasticClient.CreateIndex( "mycustomname"、I => I .InitializeUsing(indexConfig) )。

関連する問題