如果用户开始搜索,我们会自动创建一个带有表达式的开头,例如用户输入:"你好" =>天蓝色搜索输入" Hello *"。
如果用户输入特殊字符,例如" +"," - ","!"," *&#34 ;,"〜"等等(完整列表:https://msdn.microsoft.com/en-us/library/azure/mt589323.aspx#bkmk_syntax)我们会自动使用" \"例如用户输入:他** =>天蓝色搜索输入:He \ * \ * o *
这很好用,但如果用户输入是" *" (=>" \ **")azure搜索会抛出错误"无法解析查询字符串。"。这不会发生在" \ *"," \ *〜"和" \ ~~"。
我怎样才能避免这种情况,并且" \ **"唯一的例外?
答案 0 :(得分:2)
通配符运算符' *'您要附加查询字词,请启用前缀搜索查询。前缀搜索查询' \ **'返回400因为Azure搜索不允许' *'无论是否转义,都可以用作前缀搜索查询中的第一个字符。角色' *'是前缀搜索查询无法开始的唯一字符。非常感谢您报告此事。在这种情况下,错误消息并不清楚,我们会对其进行改进。
顺便说一下,您是否打算查找包含以' *'开头的条款的文档?在发出搜索查询" \ **"?
Nate