Azure 搜索 - 在 "contains" 这样的词中查找匹配项

Azure Search - Find matches within a word like "contains"

我使用 Azure 搜索,而 Azure 搜索又使用 Lucene。有没有办法让搜索不那么严格。 我需要的是在搜索“term”时应该匹配包含“term”的术语的文档。

Serching fox term 应该匹配 "PrefixTerm", "TermSuffix", "PrefixTermSuffix"

Serching fox part2 应该匹配 "part1part2", "part2part3", "part1part2part3"

我需要运行搜索包含多个术语的查询,例如

"term part2"

匹配如下文档:

{ someField:"... PrefixTermSuffix ... part1part2part3 ..." }
{ someField:"... PrefixTerm ... part2part3 ..." }
etc

您可以在 Azure 搜索的 Lucene 查询语法中使用正则表达式。在您的示例中,您可以构造一个正则表达式查询,例如 /.term./ /.part2./ 以查找包含以下术语的文档两个搜索词作为子字符串。

https://[service名称].search.windows.net/indexes/[搜索索引]/docs?api-version=2016-09-01&queryType=full&search=/.*term.*/ /.*part2.*/

Azure 搜索支持两种查询语法,简单的和完整的。后者启用 Lucene 查询语法。请参阅我们的文档 (https://docs.microsoft.com/en-us/rest/api/searchservice/lucene-query-syntax-in-azure-search) 以了解有关这些功能的更多信息。