0

我肯定错过了什么,

我的搜索包括字符串 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 },

我的错?

4

2 回答 2

0

这很可能是一个逃避问题。在大多数情况下,处理 URL 编码的代码将“+”视为空格字符。“+”不应该直接显示在 URL 中,而是编码为 %2B。更一般地,您应该在将搜索字符串添加到 search= 参数之前对其进行转义。大多数语言都有一个内置的 URL 编码原语,可以为您执行此操作(例如 .NET 中的 Uri.EncodeDataString())

于 2014-12-04T18:04:59.200 回答
0

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

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

简单的查询语法似乎是您将在搜索输入框中输入的内容,而不是您将发送到 API 的内容。

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

  • search=Aberdeen%2Bdistrict (2 个结果)
  • 搜索=阿伯丁+地区(156 个结果)
于 2015-02-02T18:20:56.050 回答