2016-11-24 2 views
0

Я использую Azure Search, и у меня есть индекс с полем с именем «keywords», который содержит ключевые слова (с типом Collection (Edm.String)), связанные с одним документом. Я хочу иметь возможность использовать нечеткий поиск в своих документах, и, как я понял из ссылки this, все, что мне нужно сделать, это поместить символ «~» в конец моего поискового запроса. Однако, похоже, это не работает в моем случае.Нечеткий поиск по коллекции строк

У меня есть несколько документов в моем индексе, и один из них включает в себя «забаву» в своих ключевых словах. Когда я ищу «запустить» с нечетким поиском, я ожидаю увидеть документы с ключевым словом «run», а также «fun». Если я правильно знаю, расстояние редактирования между «fun» и «run» составляет всего 1, что, по-видимому, является расстоянием по умолчанию, которое использует нечеткий поиск Azure Search. Я делаю что-то неправильно здесь?

Или тип Collection (Edm.String) не поддерживает нечеткий поиск? Атрибуты для «ключевых слов» доступны для поиска, фильтрации и восстановления.

Редактировать: Я использую стандартный анализатор Lucene для поля «keywords». Когда я перешлет запрос

https://fakename.search.windows.net/indexes/fakeindex/docs?api-version=2016-09-01&search=run~ 

Я бы ожидать, чтобы получить следующий документ как его ключевые слова содержат «весело»

"keywords": [ 
    "balloon", 
    "message", 
    "text", 
    "monster", 
    "fun", 
    "evil", 
    "mad", 
    "cartoons", 
    "funny" 
    ] 
+0

Какой анализатор вы используете в поле? Нечеткий оператор ~ следует положить в конце поискового запроса. Не могли бы вы поделиться поисковым запросом и одним документом, который должен совпадать? –

+0

@NateKo Я отредактировал вопрос, чтобы включить информацию, которую вы просили. – halileohalilei

ответ

0

Нечеткий поиск функция поддерживается только в Lucene синтаксиса запросов в Azure Search. В строке запроса укажите queryType = full.

Смежные вопросы