【发布时间】:2018-05-13 14:35:16
【问题描述】:
我们面临着使用 Azure 搜索执行精确匹配并忽略大小写敏感的问题。
例如,我们有一个名为 Description 的字段,它可以是小句或长句(例如:Welcome to Azure Search)。我们试图将整个句子视为一个标记,这样当用户搜索“Welcome to”时,它不会返回结果,因为我们必须搜索“Welcome to Azure Search”才能进行完全匹配。另一个要求是我们希望能够搜索不区分大小写,以便搜索“欢迎使用 Azure SEARCH”将返回结果。
我使用 Keyword Analyzer 将整个字段视为单个标记,但这会阻止不区分大小写的搜索工作。
我还尝试使用 keyword_v2 标记器和 lowercase 标记过滤器定义自定义分析器。看起来这将解决我的问题,但是最大令牌长度限制为 300。在某些情况下,描述字段会是一个超过 300 个字符的长句。
我还考虑将索引字段复制为小写并使用 OData 语法 $filter=Description eq 'welcome to azure search'。比如会有两个字段:“Description”和“DescriptionLowerCase”,搜索的时候搜索“DescriptionLowerCase”,什么时候搜索返回结果,返回“描述”。但这会使索引存储的大小翻倍。
有没有更好的方法来解决我的问题?
【问题讨论】:
标签: indexing odata analyzer azure-cognitive-search