是否支持带有通配符的短语搜索?

时间:2017-05-23 21:43:59

标签: azure-search

我意识到这可能是一个边缘情况。我可以在Azure搜索索引中搜索这样的短语:“noel magique”。

如果我尝试搜索“noe * magi *”,则不返回任何内容。似乎在短语搜索中不考虑通配符。那是对的吗?

如果没有,关于我如何能够实现这一目标的任何想法?我们的解决方案具有智能用户搜索语法解析器,可以获取该用户输入并生成天蓝色搜索语法,如下所示: keywordSloganLangSearch :( noe *)AND keywordSloganLangSearch:(magi *)

但结果并不完全相同,因为它会返回我想要的东西“Noëlmagique”,还有我不想要的东西“magiedeNoël”。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不支持此功能。短语查询仅与完整术语匹配。

要启用此行为,您可以在使用EdgeNGram令牌过滤器的keywordSloganLangSearch字段上设置自定义索引分析器。对于每个标记,给定长度的前缀将在同一位置编入索引(您可以使用minGram和maxGram选项控制长度)。由于索引中有前缀,因此可以从查询中删除后缀运算符并搜索:keywordSloganLangSearch:"noe magi"

注意,当您为每个标记索引多个术语时,该字段的索引大小将会增加。针对该字段的非短语前缀查询可能会返回许多不直观的结果,这就是为什么您可能希望拥有一个专用字段来支持这些短语前缀查询。