Что это за ошибка поиска Azure о недопустимом выражении в фильтре $

При использовании как кода C # .NET для отправки запроса в Поиск Azure, так и при использовании «Обозревателя поиска» на портале 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"
    }
}

(Сообщение состоит из одной строки. Оно отформатировано с переносом строки для удобства чтения.)

Я даже попробовал с другим аспектом, имя которого также является термином из верблюжьего регистра, и поиск также обнаружил ту же ошибку.

Моя теория состоит в том, что имена в верблюжьем регистре вызывают проблемы с поиском Azure. Кто-нибудь еще испытывал это раньше? Я предполагаю, что я поэкспериментирую со всеми именами в нижнем регистре, ожидая, пока это не пролит свет.


person starlocke    schedule 16.01.2017    source источник


Ответы (1)


Ошибка не имела ничего общего с camelcase, а с тем фактом, что эти «поля» были типа DataType.Collection(DataType.String) (массив строк).

Мне нужно было выполнить поиск, используя своего рода подзапрос, как показано в Фильтр и коллекции в OData

person starlocke    schedule 16.01.2017