是否可以在 Azure AI 搜索的过滤器中使用模糊搜索 (~) 以及通配符 (*)?

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

此问题适用于使用 Azure AI 搜索。我对同一输入同时使用可搜索功能和过滤功能。使用两者的原因是仅使用模糊搜索给我的结果太宽泛。例如,当输入多个单词时,模糊搜索给出的结果只包含其中一个单词,而我想要包含所有单词的结果。

即搜索

dot urethane
应仅返回名称同时包含
dot
urethane

的结果

因此使用过滤器和 search.ismatch() 查询可以解决这个问题。但是,我希望仍然能够使用模糊搜索来查找可能的拼写错误。如何在过滤器中使用模糊搜索?

例如:搜索

dot urethine
(聚氨酯的拼写错误)

我现在在做什么:

{
    "search": "dot~ urethine~",
    "filter" : "search.ismatch('/.*dot.*/', 'name', 'full', 'all') and 
                search.ismatch('/.*urethine.*/', 'name', 'full', 'all')"
}

此搜索/过滤器组合效果很好,但前提是单词拼写正确。否则,过滤器将删除所有结果,因为名称中没有“尿氨酸”。

我希望是可能的,但行不通:

{
    "search": "dot~ urethine~",
    "filter": "search.ismatch('/.*dot~.*/', 'name', 'full', 'all') and
               search.ismatch('/.*urethine~.*/', 'name', 'full', 'all')"
}

--

我只是在 JSON 视图模式下使用 Azure AI Search 索引搜索资源管理器来测试查询。

lucene azure-cognitive-search
1个回答
0
投票

我想我在发帖后就明白了。您可以只使用波浪号而不是与此包含查询一起使用的通配符。

例如:

search.ismatch('dot~', 'name', 'all', 'full') and search.ismatch('urethine~', 'name', 'all', 'full')

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