2016-11-18 13 views
2

Я использую следующее определение для моего поля поиска по индексу, который обыскиваемогоAzure Поиск анализатор не соответствует другому слову напряженной

new Field("Description", DataType.String, AnalyzerName.EnMicrosoft), 

используя английского майкрософт анализатора текста, однако это не кажется, совпадающие слова, как я ожидал бы. При поиске в этом поле со словом «нарезанный» поиск в Azure не возвращает результаты, такие как «slice», «slices». Точно так же при поиске множественного слова типа «вишни» особая форма «вишня» не возвращается и наоборот. Только экземпляры, в которых, добавив 's', возвращаются множественные формы, но это произойдет независимо от того, что «собака» вернет «собаку» или «собак» или «собачку», потому что «собака» является лишь префиксом каждого слова.

Есть ли специальный параметр, который необходимо передать в поисковый вызов, чтобы «активировать» анализатор текста?

ответ

2

похоже, что вы отправляете префиксные поисковые запросы. Подстановочные поисковые запросы, такие как search = test * или search = te? T, не проходят лексический анализ в Azure Search. Если вы действительно выдаете подстановочные запросы, один из способов обойти - выдать запрос на префикс поискового запроса обычным поисковым запросом, например, поиск = нарезанный нарезанный *.

Nate

+0

Wow thanks! Я начинал сходить с ума, пытаясь понять, что происходит. – srfigie