操作员似乎不起作用

时间:2014-12-03 05:29:48

标签: azure-search

我一定错过了什么,

我的搜索包含字符串long + beach所以我希望结果只包含条目(在这种情况下)位置字段包含long和beach。

/indexes/person2/docs?$count=true&$top=100&search=long+beach&searchFields=location

api-version=2014-07-31-Preview

我没有代表的图片显示迈阿密海滩,佛罗里达等。

我尝试设置& searchMode = any,没有任何变化。

该列看起来像这样

new { Name = "location",        
Type = "Edm.String",             
Key = false, 
Searchable = true,  
Filterable = true,  
Sortable = true,   
Facetable = true,  
Retrievable = true,  
Suggestions = true },

我的不好?

2 个答案:

答案 0 :(得分:0)

这很可能是一个逃避问题。 " +"在大多数情况下,处理URL编码的代码被视为空格字符。 " +"不应该在URL中按字面显示,但编码为%2B。更一般地说,您应该在将搜索字符串添加到search =参数之前将其转义。大多数语言都有一个内置的URL编码原语,可以为你做这个(例如.NET中的Uri.EncodeDataString())

答案 1 :(得分:0)

我遇到了同样的问题。 %2B也为我工作。我想我被Azure搜索文档的这个页面抛弃了,它描述了可用于优化搜索的简单查询语法。

https://msdn.microsoft.com/en-us/library/azure/dn798920.aspx

看起来简单的查询语法就是你要放在搜索输入框中的语法,而不是你要发送到API的语法。

这是我项目中的一个例子:

  • search = Aberdeen%2Bdistrict(2个结果)
  • search = Aberdeen + district(156结果)