Поисковый запрос Azure для фильтрации значений JSON - PullRequest
2 голосов
/ 08 мая 2019

Я пытаюсь создать поисковый запрос Azure.Тип поля - это коллекция (Edm.String) в поисковом индексе Azure.Вот так выглядят мои данные JSON, которые нужно отфильтровать: ["A", "B"].

Когда я пытаюсь отфильтровать, используя алфавит запроса в 'A', он выводит все записи с "A"" в этом.Но когда я пытаюсь создать такой же запрос в своем коде, как «A» в алфавите », возникает исключение:

« Недопустимое выражение: выражение содержит неподдерживаемую функцию языка OData.запросите и попробуйте снова.
Имя параметра: $ filter ".

Есть ли другой запрос Azure, который я могу использовать для фильтрации моих данных JSON?

Примечание: я не мог использовать eq, так как мое поле многозначно и eq может обрабатывать только отдельные значения.

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Решением для этого является использование запроса search.ismatch, например search.ismatch («A, B», «Alphabet», «simple», «any»).Таким образом, результат будет иметь результаты поиска всех записей, имеющих либо A, либо B, либо и то и другое.

Ссылка: https://docs.microsoft.com/en-us/azure/search/query-odata-filter-orderby-syntax

0 голосов
/ 09 мая 2019

, если вы хотите отфильтровать коллекцию, в которую нужно включить несколько значений, т. Е. Вы хотите запросить весь результат, у коллекции которого есть «A» и «B», попробуйте выражение фильтра ниже:

Давайте предположим,название поля вашей коллекции "алфавит"

$filter=alphabet/any(s: s eq 'A') and alphabet/any(s: s eq 'B')
...