C#で.NETSDKを使用してAzureSearchを使用したい。プロパティpreserveOriginal
をtrueに設定してWordDelimiterTokenFilterを使用するアナライザーを作成するにはどうすればよいですか?
カスタムアナライザーのプロパティにはTokenFilterNamesのみが含まれているようです
private static void CmdletIndex(ISearchServiceClient
serviceClient)
{
var definition = new Index
{
Name = "cmdlets",
Fields = FieldBuilder.BuildForType<CmdletModel>(),
Analyzers = new[]
{
new CustomAnalyzer
{
Name = "my_analyzer",
Tokenizer = TokenizerName.Standard,
TokenFilters = new[]
{
TokenFilterName.WordDelimiter
}
}
}
};
serviceClient.Indexes.Create(definition);
}
WordDelimiter TokenFilterを作成し、カスタムプロパティを設定するにはどうすればよいですか?
最初にに基づくトークンフィルターを定義しWordDelimiter
てから、カスタムアナライザーでそれを参照する必要があります。
私は便利なサンプルを持っていませんが、あなたの質問のコードに基づいて、これがどのように機能すると思うかです(免責事項:テストされていません;コンパイルさえされていませんが、うまくいけば一般的なアイデアが得られます):
private static void CmdletIndex(ISearchServiceClient
serviceClient)
{
var definition = new Index
{
Name = "cmdlets",
Fields = FieldBuilder.BuildForType<CmdletModel>(),
Analyzers = new[]
{
new CustomAnalyzer
{
Name = "my_analyzer",
Tokenizer = TokenizerName.Standard,
TokenFilters = new[]
{
"my_word_delimiter_filter"
}
}
},
TokenFilters = new[]
{
new WordDelimiterTokenFilter()
{
Name = "my_word_delimiter_filter",
PreserveOriginal = true
}
}
};
serviceClient.Indexes.Create(definition);
}
また、Azure Cognitive Search用の新しいSDKが間もなく(2020年7月)一般提供されることに注意してください。と似てMicrosoft.Azure.Search
いますが、下位互換性はありません。プレビューを評価してフィードバックを提供したい場合は、ここで見つけることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加