2015-02-09 3 views
0
индекс

Моего CloudSearch в настоящее время не возвращает результатов для one-two three но он возвращает один результат (правильно) для one two three (и также будет включен, правильно, в результатах при поиске two three и т.д.)Можно ли настроить символы разделителя маркеров с помощью AWS Cloudsearch?

Я понимаю, что это потому что поисковые фразы разбиты на свои жетоны (слова) пробелами и пунктуацией, действующими в качестве разделителей. Итак, one и two становятся отдельными токенами, но one-two не действительный токен, поэтому результаты не найдены. Из Cloudsearch docs:

Во время токенизации поток текста в поле разбивается на отдельные лексемы на детектируемых границах, используя правила разрыва слов, определенные в алгоритме сегментации текста Unicode.

Этот документ Юникода is here.

Я хотел был бы иметь возможность найти one-two three и найти соответствующий результат, а также несколько других знаков препинания, таких как /. Можно ли настроить это с помощью Cloudsearch?

ответ

0

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

Таким образом, one-two three фактически выполняет поиск по one two three, вернув правильный результат.

+0

Это неудобно, вам не нужно менять корпус, чтобы соответствовать ограничениям AWS. Разве он не поддерживает WordDelimiterFilterFactory? – occasl

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