如何在 WordDelimiter TokenFilter 上设置自定义参数
How does one set custom parameters on the WordDelimiter TokenFilter
我想通过 C# 中的 .NET SDK 使用 Azure 搜索。如何创建一个使用 WordDelimiter TokenFilter 并将 属性 preserveOriginal
设置为 true 的分析器?
自定义分析器的属性似乎只包括 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 认知搜索的全新 SDK 很快就会全面上市(2020 年 7 月)。它类似于 Microsoft.Azure.Search
,但不向后兼容。如果您想对预览进行评估并提供反馈,可以找here.
我想通过 C# 中的 .NET SDK 使用 Azure 搜索。如何创建一个使用 WordDelimiter TokenFilter 并将 属性 preserveOriginal
设置为 true 的分析器?
自定义分析器的属性似乎只包括 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 认知搜索的全新 SDK 很快就会全面上市(2020 年 7 月)。它类似于 Microsoft.Azure.Search
,但不向后兼容。如果您想对预览进行评估并提供反馈,可以找here.