此问题适用于使用 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 索引搜索资源管理器来测试查询。
我想我在发帖后就明白了。您可以只使用波浪号而不是与此包含查询一起使用的通配符。
例如:
search.ismatch('dot~', 'name', 'all', 'full') and search.ismatch('urethine~', 'name', 'all', 'full')