2017-01-14 6 views
1

Я хочу, чтобы выполнить Azure поиск по индексу местонахождения (состоящей из 100K записей COUNTRYCODE и информации о местоположении)Azure Search- помощью Lucene и фильтры

Потребность в

a) limit the search to specified country codes 
b) be able to handle fuzzy search 

Я могу для достижения отфильтрованного поиска в простом синтаксисе запроса с использованием OData синтаксиса $ фильтра = (COUNTRYCODE эк «IN» или CountryCode э «AT» или COUNTRYCODE эк «AU») https://docs.microsoft.com/en-us/rest/api/searchservice/odata-expression-syntax-for-azure-search

Я могу достичь нечеткого моря RCH с помощью поиска Lucene по тип_запросу = полный & поиск = euroe ~ 1 в соответствии с этим синтаксисом

тип_запроса = полный & поиска = Сидни ~ 1 & $ фильтра = CountryCode э 'AT' или CountryCode э 'AU' & searchMode = Все

Есть ли способ использовать a contains вместо нескольких уравнений. Синтаксис, по-видимому, ограничен

ответ

1

Синтаксис не содержит синтаксиса для локализации в Azure Search. Если эта функция важна для вас, пожалуйста, добавьте элемент в User Voice, чтобы помочь поисковой команде Azure найти приоритет.

+0

будет делать Благодарения и. У нас есть сценарии, в которых на основе контекста нам нужно применять фильтры страны - и кажется неуклюжим создавать фильтры через несколько или операторов по каждому из параметров фильтра – raghu

0

Поздний ответ, но как насчет search.in?

Ваш запрос может быть:

queryType=full&search=sydne~1&$filter=search.in(CountryCode, 'AT, AU')&searchMode=All 

Вы можете найти более подробную информацию о OData expression syntax for Azure Search