【发布时间】:2021-04-26 01:31:53
【问题描述】:
在对以下示例数据集使用 azure 搜索时遇到问题:abc-123-456、abc-123-457、abc-123-458 等 在搜索 abc-123-456 时,我希望只返回一个结果,而是得到所有包含 abc-123-... 有什么设置或方法可以改变这种行为吗?
当前搜索设置:
TheSearchIndex.TokenFilters.Add(new EdgeNGramTokenFilter("frontEdgeNGram")
{
Side = EdgeNGramTokenFilterSide.Front,
MinGram = 3,
MaxGram = 20
});
TheSearchIndex.Analyzers.Add(new CustomAnalyzer("FrontEdgeNGram", LexicalTokenizerName.Whitespace)
{
TokenFilters =
{
TokenFilterName.Lowercase,
new TokenFilterName("frontEdgeNGram"),
TokenFilterName.Classic,
TokenFilterName.AsciiFolding
}
});
SearchOptions UsersSearchOptions = new SearchOptions
{
QueryType = SearchQueryType.Simple,
SearchMode = SearchMode.All,
};
使用 azure.search.documents 版本 11.1.1
编辑:使用带星号的 abc-123-456* 进行搜索会得到预期的结果。如何让这种行为默认工作?
只是添加到这个..
传送门版本为2020-06-30 我们使用的 sdk 版本是 azure.search.documents ver 11.1.1
- abc-123-456 无法按预期工作
- “abc-123-456”无法按预期工作
- “abc-123-456”* 不起作用
- “abc-123-456*”不起作用
如果我们在搜索文本的末尾附加一个星号并且它不在一个短语中......它会按预期工作。 IE: abc-123-456* 按预期工作。 (abc-123-456* | abc-123-457* ) 按预期工作。
为什么需要星号?我们如何才能在一个短语中完成这项工作?
【问题讨论】:
标签: azure-cognitive-search azure-search-.net-sdk