什么是关于"无效表达式"的Azure-Search错误是什么?在$过滤器上

时间:2017-01-16 19:56:34

标签: c# azure azure-search

使用C#.NET代码向Azure Search发送查询时以及使用"搜索资源管理器"在资源管理器样式Azure门户中,Azure搜索将在给定查询(在搜索资源管理器中作为输入)时成功:

search=foo&facet=category&$filter=category eq 'Teams'

但在给出时失败:

search=foo&facet=categoryDetails&$filter=categoryDetails eq 'Subcategory'

返回的错误是:

{
    "error": {
        "code": "",
        "message": "Invalid expression: The operand for a binary operator
                   'Equal' is not a single value. Binary operators require
                   both operands to be single values.\r\nParameter name:
                   $filter"
    }
}

(消息是单行的。在此处使用换行符进行格式化以便于阅读。)

我甚至尝试了另一个方面,其名称也是一个camelcase术语,搜索也遇到了同样的错误。

我的理论是,camelcase名称会导致Azure搜索出现问题。有没有其他人经历过这个?我假设我在等待光线照射时会尝试所有小写名称。

1 个答案:

答案 0 :(得分:4)

该错误与camelcase无关,但事实上这些“字段”属于DataType.Collection(DataType.String)类型(字符串数组)。

我需要使用Filter and collections in OData

中显示的一种子查询进行搜索