首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure搜索-正则搜索

Azure搜索-正则搜索
EN

Stack Overflow用户
提问于 2020-06-19 21:11:00
回答 2查看 272关注 0票数 1

我正在尝试配置Azure搜索,以查找一些具有特殊字符的字符串,例如ABC*DEF。

当我使用"ABC*DEF"寻找一个完整的术语时,它是完美的。

如果我想使用正则表达式,问题就来了:

  • 当我使用像/(.*)ABC(.*)/这样的部分术语时,结果没有问题。
  • 当我使用像/(.*)DEF(.*)/这样的部分术语时,结果没有问题。
  • 但是当我试图寻找类似/(.*)C\*D(.*)/的东西时,结果是空的。

我用的是标准分析器。我也尝试过关键字分析器,但那样的话regex搜索根本不起作用。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2020-06-19 21:40:46

您将无法使用标准分析器创建与ABC*DEF匹配的regex表达式。

如果使用“标准”分析器通过"ABC\*DEF"运行分析器api,您将看到ABC*DEF在索引时被划分为两个标记:->、"ABC""DEF"。没有分析Regex表达式,但是它们需要匹配索引中存在的令牌。

因为索引中不存在ABC\*DEF (只有"ABC“和"DEF”存在),所以您将无法使用正在搜索的表达式找到它。

使用“关键字”分析器将整个字段保持为单个标记,因此如果字段“仅”包含表达式ABC\*DEF,那么regex表达式将在其上工作,但是,如果ABC\*DEF是较大文本段落的一部分,那么这可能不是您想要使用的。

最好的选择是创建一个自定义分析器,它以保留与用例相关的特殊字符的方式标记文本。

票数 3
EN

Stack Overflow用户

发布于 2020-06-19 21:26:52

如果你在寻找特殊的字符,为什么不放弃普通的字符呢?

代码语言:javascript
复制
[^\w]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62478595

复制
相关文章

相似问题

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