C# Azure搜索';s search.in不';使用空格时不返回结果
我正在从我的c#应用程序调用Azure Search 当我尝试对我的产品类别进行筛选时,它只在类别不包含任何空格时才给我结果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
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’”
如果您不实际显示代码,我们如何猜测您使用的代码?你把它当作你的密码写的是关于查询的。。。这是关于代码的。。这是堆栈溢出,我无法再确认这一点,因为我们不再使用名称,而是使用密钥,因为我们需要翻译。但是语法是有效的,所以我想这是正确的答案。谢谢