是否支持使用通配符进行短语搜索?
Is there support for Phrase Search with wildcards?
我意识到这可能有点极端。我可以在 Azure 搜索索引中搜索这样的短语:"noel magique".
如果我尝试搜索 "noe* magi*",它 return 什么也没有。似乎在短语搜索中没有考虑通配符。那是对的吗?
如果没有,关于我如何能够完成此任务的任何想法?我们的解决方案有一个智能用户搜索语法解析器,它可以接受用户输入并生成 azure 搜索语法,如下所示:
keywordSloganLangSearch:(noe*) AND keywordSloganLangSearch:(magi*)
但这并不是完全相同的结果,因为它会 return 我想要的东西 "Noël magique" 但也有我不想要的东西 "magie de Noël".
有什么想法吗?
这是不支持的。短语查询仅匹配完整的术语。
要启用此行为,您可以在使用 EdgeNGram 标记过滤器的 keywordSloganLangSearch
字段上设置自定义索引分析器。对于每个令牌,其给定长度的前缀将在相同位置建立索引(您可以使用 minGram 和 maxGram 选项控制长度)。由于索引中有前缀,因此可以从查询中删除后缀运算符并搜索:keywordSloganLangSearch:"noe magi"
请注意,随着您现在为每个标记索引多个术语,该字段的索引大小将会增加。针对该字段的非短语前缀查询可能会 return 许多不直观的结果,这就是为什么您可能希望有一个专用字段来支持这些短语前缀查询。
我意识到这可能有点极端。我可以在 Azure 搜索索引中搜索这样的短语:"noel magique".
如果我尝试搜索 "noe* magi*",它 return 什么也没有。似乎在短语搜索中没有考虑通配符。那是对的吗?
如果没有,关于我如何能够完成此任务的任何想法?我们的解决方案有一个智能用户搜索语法解析器,它可以接受用户输入并生成 azure 搜索语法,如下所示: keywordSloganLangSearch:(noe*) AND keywordSloganLangSearch:(magi*)
但这并不是完全相同的结果,因为它会 return 我想要的东西 "Noël magique" 但也有我不想要的东西 "magie de Noël".
有什么想法吗?
这是不支持的。短语查询仅匹配完整的术语。
要启用此行为,您可以在使用 EdgeNGram 标记过滤器的 keywordSloganLangSearch
字段上设置自定义索引分析器。对于每个令牌,其给定长度的前缀将在相同位置建立索引(您可以使用 minGram 和 maxGram 选项控制长度)。由于索引中有前缀,因此可以从查询中删除后缀运算符并搜索:keywordSloganLangSearch:"noe magi"
请注意,随着您现在为每个标记索引多个术语,该字段的索引大小将会增加。针对该字段的非短语前缀查询可能会 return 许多不直观的结果,这就是为什么您可能希望有一个专用字段来支持这些短语前缀查询。