将通配符与不同于Azure搜索中的标准分析器的分析器一起使用

时间:2019-04-16 14:07:03

标签: azure azure-search

我需要允许自由文本搜索包含破折号的值,例如ABCD-12EF

我知道standard分析器不能与-一起很好地工作,因为它会将内容拆分为多个令牌。我已经创建了一个类似于下面的索引,以尝试使用keywordwhitespace分析器,但是*字符似乎不再起作用。仅当我搜索不带*的完整值时才得到结果,因此ABCD-12EF。如果我搜索ABCD-12EFABCD-12*ABCD*,则不会得到任何结果。

知道为什么吗?

public class IndexTryOut
{
    [Key, IsFilterable]
    public string Id { get; set; }

    [IsSearchable, IsFilterable]
    [Analyzer("keyword")]
    public string Data1 { get; set; }

    [IsSearchable, IsFilterable]
    [Analyzer("whitespace")]
    public string Data2 { get; set; }
}

1 个答案:

答案 0 :(得分:1)

您可以定义一个自定义分析器,该分析器使用带有“小写”令牌过滤器的“关键字”令牌生成器-参见我对这个问题的回答:How to index a field with alphanumeric characters AND a dash for wildcard search