Azure Search似乎无法处理Unicode标点符号

问题描述 投票:0回答:3

我有一个带有一堆文本条目的Azure搜索索引。我观察到,如果索引包含“ AI's”之类的条目(Unicode单引号字符8217),则搜索单词“ AI”将无法返回结果。索引应处理标点符号-包括Unicode变体。搜索“ John”应该返回带有“ John's”的项目。请确认这是否是已知的错误,如果是,将在何时修复。

[当我搜索“ AI”(撇号是Unicode字符8217时,期望找到“ AI”)。该项目未按预期返回。

azure-search
3个回答
0
投票

您可以确认索引中使用的是哪种分析器吗?我们支持许多分析仪,这些分析仪会将您的搜索词和文档词分解为不同的标记。例如,如果您的内容为英语,则可以使用en.microsoft分析器,该分析器应将“ AI”一词分为两个标记->“ AI”和“ AI's”。

有关分析仪的更多信息,在这里->

https://docs.microsoft.com/en-us/azure/search/search-analyzers和这里https://docs.microsoft.com/en-us/azure/search/index-add-language-analyzers


0
投票

要求不删除撇号。是规范化它。带有“ John's”(ASCII撇号)的文章与对“ John”的搜索匹配。但是,没有带有“ John's”(Unicode撇号)的文章。分析器应在有意义的地方将Unicode变体规范化为ASCII等效形式。 Unicode单引号应映射到ASCII变体。形态分析应随后应用于下游。 “不能”不应与对“可以”的搜索匹配,但“约翰的”应与对“约翰”的搜索匹配。最重要的是,语法规范化应该在语义解释的上游。而且在很多情况下,即使无需应用特定于语言的形态规则,规范化操作也可以安全地应用-Unicode中的撇号只是ASCII中的撇号的图形变体-缺少语义信息丢失的风险。


-1
投票

感谢您的及时答复。我正在使用默认的(Lucene)分析器。我希望它能处理Unicode撇号。根据文档,默认分析器支持Unicode文本分段规则(https://unicode.org/reports/tr29/)。但是,Unicode引号字符8216和8217不能正确处理。 8216是左单引号Unicode字符,而8217是右单引号Unicode字符:

https://www.fileformat.info/info/unicode/char/2018/index.htmhttps://www.fileformat.info/info/unicode/char/2019/index.htm

您是否建议我停止使用默认的标准Lucene分析仪?在我看来,这似乎是个虫子。我没有任何特殊要求,因此不必更换分析仪。是的,我的内容是英语。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.