Azure搜索服务具有的字段。或#不解码没有结果

时间:2015-06-02 19:53:59

标签: azure-search

我们正在使用.net库进行azure搜索,我已经成功地在索引中构建了索引和存储数据。我们的一个字段称为标签,它是字符串的集合,并标记为可搜索。因此我们将值放在此字段中,例如C#.NET。

问题在于搜索搜索服务时不会点击C#,它会在C上,也不会在.NET上点击,但它会在.NET上。我可以通过提琴手看到搜索词正在编码#和the。,但它似乎并没有在蔚蓝的一面进行解码。

3 个答案:

答案 0 :(得分:3)

您看到的行为是Azure搜索使用的标准分析器执行的结果标记化。默认情况下,它会打破许多标点字符,如#和。 (您可以在Azure Search here中获取文本分析的所有详细信息。)

我们正在考虑添加对custom analyzers的支持,以便您排除#和等字符。从破纪录,但这仍然在规划阶段。与此同时,作为一种解决方法,我们建议在索引和查询之前在应用程序中对这些字符进行编码(例如 - C# - > CSharp,.NET - > dotNET)。

答案 1 :(得分:1)

感谢Bruce,现在我刚刚在我们的搜索实现中创建了一个函数,用于从最终用户提供的搜索项中删除标点符号。这样我就不必通过并更新所有搜索索引/记录。

    private string SanitizeValue(string value)
    {
        return Regex.Replace(value, @"[^a-zA-Z0-9\s]", "");
    }

答案 2 :(得分:0)

您可以尝试使用正则表达式搜索,例如搜索以下字符串:/.*c\#.*/。另外,请确保您设置了SearchParameters.QueryType = QueryType.Full