0
"mynGram"と呼ばれるカスタムアナライザーを作成しました。しかし、nullのためAnalysisに追加することはできません。カスタムアナライザでインデックスを作成する正しい方法は何ですか?IndexSettings ElasticSearchネストの解析はnullです。カスタムアナライザを追加するには?
const string indexName = "taskmanager";
ConnectionSettings settings = new ConnectionSettings(new Uri("http://localhost:9200")).DefaultIndex("taskmanager").DefaultTypeNameInferrer(t => "tasks");
elasticClient = new ElasticClient(settings);
IndexSettings indexSettings = new IndexSettings();
CustomAnalyzer customAnalyzer = new CustomAnalyzer();
customAnalyzer.CharFilter = new List<string>();
customAnalyzer.Tokenizer = "mynGram";
customAnalyzer.Filter = new List<string> { "lowercase" };
// test
// Analysis is null
indexSettings.Analysis = new Analysis();
// Analyzers is null
indexSettings.Analysis.Analyzers.Add("mynGram", customAnalyzer);
indexSettings.Analysis.Tokenizers.Add("mynGram", new NGramTokenizer { MaxGram = 10, MinGram = 2 });
IndexState indexConfig = new IndexState
{
Settings = indexSettings
};
elasticClient.CreateIndex(indexName, i => i
.InitializeUsing(indexConfig)
);
このカスタムアナライザをAnalyzer属性に設定します。
あなたがそうであるように、それはNEST 2.xのになり、オブジェクト初期化子構文を使用した[Text(Name = "Title", Index = false, Store = true, Analyzer = "mynGram")]
public string Title { get; set; }
NESTのどのバージョン? –