【问题标题】:Azure Search Service filter search.ismatch() not returning correct result when search contains special characters当搜索包含特殊字符时,Azure 搜索服务筛选器 search.ismatch() 未返回正确结果
【发布时间】:2022-01-09 19:26:55
【问题描述】:

我在 Azure 搜索服务的过滤器中使用 search.ismatch(),当我的搜索词包含特殊字符(如 [-,&,;])时,它不会给出正确的结果。以下是详细内容

调用的函数是search.ismatch('knet-q&a','fieldName','full','all') 在这里,我使用的是标准的 lucene 分析器,当返回结果时,它返回的结果除了具有 knet 之外,我希望它应该返回包含所有三个术语(knet、q、a)的结果。似乎只要看到一个特殊字符 azure 就会忽略其余字母,只返回具有 knet 术语的结果。

几个问题

  1. 这是上述正确行为还是 azure 返回结果方式中的错误
  2. 如果我使用客户分析器或关键字分析器进行过滤,请考虑在查询处理或类似分析器时不会考虑,因为它是过滤器而不是搜索词
  3. 如果在查询处理期间考虑使用分析器,最好使用关键字分析器,它会在索引和搜索期间保留所有特殊字符,我可以传递正则表达式来匹配特殊字符

提前致谢

谢谢 普拉提克

【问题讨论】:

    标签: azure azure-cognitive-search


    【解决方案1】:

    1-据我所知是正确的。默认分析器会删除特殊字符。

    2-您可以创建自定义分析器或使用不删除特殊字符的分析器,您只需要重新索引内容。

    3-分析器将在索引时工作。

    【讨论】:

      猜你喜欢
      • 2020-05-20
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多