如何在单词分隔符令牌筛选器上设置自定义参数



我想在 C# 中使用 .NET SDK 使用 Azure 搜索。 如何创建使用属性设置为 true 的单词分隔符令牌筛选器的分析器preserveOriginal

自定义分析器的属性似乎仅包含令牌筛选器名称

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的令牌筛选器,然后在自定义分析器中引用该筛选器。

我手边没有示例,但根据您问题中的代码,我认为它会如何工作(免责声明:未测试;不确定它是否编译,但希望它能给你一个大致的想法(:

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 认知搜索的全新 SDK 即将正式发布(2020 年 7 月(。它与Microsoft.Azure.Search相似,但不向后兼容。如果要评估预览并提供反馈,可以在此处找到它。

最新更新