首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure Search Service具有以下内容的字段。或#不解码无结果

Azure Search Service具有以下内容的字段。或#不解码无结果
EN

Stack Overflow用户
提问于 2015-06-03 03:53:59
回答 3查看 527关注 0票数 0

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

问题是,当搜索服务不会命中C#时,它会命中C语言,也不会命中.NET,但会命中网络。我可以通过fiddler看到搜索词正在对#和.进行编码,但它似乎并没有在azure端被解码。

EN

回答 3

Stack Overflow用户

发布于 2015-06-03 07:41:11

您看到的行为是Azure Search使用的标准分析器执行的结果标记化。默认情况下,它会在许多标点符号上断开,如#和。(你可以在Azure Search here中获得文本分析的所有细节)。

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

票数 3
EN

Stack Overflow用户

发布于 2015-06-03 20:43:51

谢谢Bruce,现在我已经在我们的搜索实现中创建了一个函数,它可以从最终用户提供的搜索词中删除标点符号。这样我就不需要遍历和更新所有的搜索索引/记录。

代码语言:javascript
运行
复制
    private string SanitizeValue(string value)
    {
        return Regex.Replace(value, @"[^a-zA-Z0-9\s]", "");
    }
票数 1
EN

Stack Overflow用户

发布于 2019-05-31 19:06:14

你可以尝试使用正则表达式搜索,比如搜索这个字符串:/.*c\#.*/。还要确保设置了SearchParameters.QueryType = QueryType.Full

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30605384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档