Как связать запрос Solr по типу клавиатуры? - PullRequest
0 голосов
/ 23 мая 2019

Solr используется в качестве поисковой системы для сторонней системы. Иногда клиенты вводят свои запросы с неправильной раскладкой клавиатуры, например, русское слово «привет» (hi) набирается как «ghbdtn». Я ищу возможную возможность SOLR преобразовать это в правильную раскладку клавиатуры.

Я пробовал несколько фильтров, таких как SnowballPorterFilterFactory и SynonymFilterFactory, но сложно заполнить синонимы для всех случаев

Возможно ли настроить SOLR для этой задачи или мне нужно выполнить преобразование в другую систему?

Буду благодарен за любые предложения. Если я могу запросить исправление в java - предоставьте соответствующую библиотеку

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Вы можете добавить MappingCharFilter в свою цепочку обработки.Добавьте новый тип поля с MappingCharFilter в качестве первого шага, а затем используйте инструкцию copyField, чтобы получить те же данные и в новом поле.

Файл сопоставления будет представлять собой набор сопоставлений символов междудве раскладки клавиатуры:

"п" => "g"
"р" => "h"
"и" => "b"

.. и т. д.

Затем можно также оценить новое поле ниже, чем правильное поле, используя qf с весами в запросе edismax.

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

Ну, я нашел другое решение, возможно, оно не связано с самой SOLR.

Если SOLR ничего не возвращает по неправильному запросу, я сделаю другое, где меняются буквы с русского на английский.Это обрабатывается сторонней системой при создании запроса.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...