我有以下代码,
filter="search.ismatch('Paris\-l''Hopital*', 'DestinationAddress/City', 'full', 'all')"
此过滤器应该会给我具有名称为Paris-l'Hopital的City的记录。请注意,我正在用另一个单引号转义搜索词中间的单引号。Hiphen使用反斜杠转义。此外,City字段使用Microsoft Analyzer。
虽然我可以看到搜索索引中存在记录,但我不明白为什么此过滤器不返回我期望的记录。任何输入都将不胜感激。
参考https://learn.microsoft.com/en-us/azure/search/search-query-odata-full-text-search-functionshttps://learn.microsoft.com/en-us/azure/search/query-simple-syntax
谢谢你们
默认情况下,它将连字符视为停用词。您需要更改默认分析器,以便在找到“-”时不会打断不同的单词。
通常,如果您有特定语言的内容,我会建议您考虑使用特定语言的分析器。对于地址,这很棘手,因为您可能必须支持所有类型的地址。您是否尝试过使用其中一种法语分析器?它可能会在标记典型的法语内容方面做得更好。