【发布时间】:2022-01-09 19:26:55
【问题描述】:
我在 Azure 搜索服务的过滤器中使用 search.ismatch(),当我的搜索词包含特殊字符(如 [-,&,;])时,它不会给出正确的结果。以下是详细内容
调用的函数是search.ismatch('knet-q&a','fieldName','full','all') 在这里,我使用的是标准的 lucene 分析器,当返回结果时,它返回的结果除了具有 knet 之外,我希望它应该返回包含所有三个术语(knet、q、a)的结果。似乎只要看到一个特殊字符 azure 就会忽略其余字母,只返回具有 knet 术语的结果。
几个问题
- 这是上述正确行为还是 azure 返回结果方式中的错误
- 如果我使用客户分析器或关键字分析器进行过滤,请考虑在查询处理或类似分析器时不会考虑,因为它是过滤器而不是搜索词
- 如果在查询处理期间考虑使用分析器,最好使用关键字分析器,它会在索引和搜索期间保留所有特殊字符,我可以传递正则表达式来匹配特殊字符
提前致谢
谢谢 普拉提克
【问题讨论】:
标签: azure azure-cognitive-search