Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure搜索';s search.in不';使用空格时不返回结果_C#_Azure_Search_Azure Cognitive Search - Fatal编程技术网

C# Azure搜索';s search.in不';使用空格时不返回结果

C# Azure搜索';s search.in不';使用空格时不返回结果,c#,azure,search,azure-cognitive-search,C#,Azure,Search,Azure Cognitive Search,我正在从我的c#应用程序调用Azure Search 当我尝试对我的产品类别进行筛选时,它只在类别不包含任何空格时才给我结果 search.in(ProductCategory,'Garden') // Works search.in(ProductCategory,'Sport and Games') // Doesn't Work search.in(ProductCategory,'Garden, Sport and Games') // Only shows 'Garden' re

我正在从我的c#应用程序调用Azure Search

当我尝试对我的产品类别进行筛选时,它只在类别不包含任何空格时才给我结果

search.in(ProductCategory,'Garden')  // Works
search.in(ProductCategory,'Sport and Games')  // Doesn't Work
search.in(ProductCategory,'Garden, Sport and Games')  // Only shows 'Garden' results
这表明可以使用空格,所以我想知道为什么我在使用空格时没有得到任何结果

$filter=search.in(name, 'Roach motel, Budget hotel') // Sample from docs
它还声明
search.in(字段“一、二、三”)
等于
field eq“一”或field eq“二”或field eq“三”
。但是当我在我的案例中使用它时,所以
ProductCategory eq'Sport and Games'
它是有效的

所以我认为他们之间有某种区别。但我不知道是什么。我首先认为它可能与字段
ProductCategory
不可搜索有关,但另一方面,它适用于非空间类别。另外,如果它的行为类似于
eg
,那么它是一个过滤器而不是一个搜索,对吗

有人能解释这种区别吗?



现在,我只是创建了一个没有搜索的过滤器,只创建了
ProductCategory eq'Sport and Games or…'
,但是当有人选择了很多类别时,这可能会变得很长。

问题是,如果不指定分隔符,
search.in
假设空格和逗号是分隔符。由于值中有空格,因此需要指定自己的分隔符参数。例如,假设值不包含逗号,则可以执行以下操作:

$filter=search.in(ProductCategory, 'Garden,Sport and Games', ',')
注意花园后面的逗号后面缺少空格

通常,如果文字值中存在字符,则不能使用这些字符作为分隔符


您从我们的文件中提到的样品是不正确的。我们会确保它得到修复。很抱歉造成混淆。

我很惊讶它喜欢单引号。@BugFinder您将它包装成字符串,因此它将用作
SearchParameters.Filter=“ProductCategory eq‘Sport and Games’”
如果您不实际显示代码,我们如何猜测您使用的代码?你把它当作你的密码写的是关于查询的。。。这是关于代码的。。这是堆栈溢出,我无法再确认这一点,因为我们不再使用名称,而是使用密钥,因为我们需要翻译。但是语法是有效的,所以我想这是正确的答案。谢谢