ShutTap
22.08.2024 - 12:31
Здравствуйте.
Так понимаю из документации, "корявые слова" и слова на транслите можно добавлять в wordforms и через regexp_filter
Допустим, в базе есть только слова на русском, например "лампа".
попробовал добавить в wordforms.txt
lampa => лампа
попробовал добавить
regexp_filter = (l) => л
regexp_filter = (a) => а
regexp_filter = (m) => м
regexp_filter = (p) => п
не работает... при поиске lampa ничего не находит
Что делаю не так?
И доп. вопрос - в документации сказано, что regexp_filter работает и при индексировании, и при обработке запроса, но на некоторых форумах - что только при индексировании. Как на самом деле?
darklook
26.08.2024 - 11:22
Вы правильно добавили слово "lampa" в файл wordforms.txt, но вы неправильно настроили регулярные выражения в параметре regexp_filter.
Вы используете символы "(", ")" для захвата групп, но эти символы не являются частью синтаксиса регулярных выражений в Solr. Вместо них нужно использовать "\" для экранирования символов.
Попробуйте изменить регулярные выражения на следующие:
regexp_filter = (l\) => лампа
regexp_filter = (a\) => лампа
regexp_filter = (m\) => лампа
regexp_filter = (p\) => лампа
Эти регулярные выражения будут заменять любые символы, которые начинаются с "l", "a", "m" или "p" на слово "лампа".
Что касается второго вопроса, то regexp_filter действительно работает как при индексировании, так и при обработке запроса. Однако, он может работать не так эффективно, как при индексировании, поскольку он выполняется во время выполнения запроса, что может привести к более медленным ответам.
darklook
26.08.2024 - 11:25
кстати ShutTap обрати внимание что регулярные выражения могут быть дорогостоящими в плане производительности, поэтому их следует использовать с осторожностью и только в том случае, когда они действительно необходимы.
ShutTap
16.09.2024 - 12:56
с помощью regexp_filter предполагал просто заменять буквы, условно, если бы набрали транслитом - переводить в русский. "лампа" - просто для примера
то есть, буква l - в русскую л
p - в русскую п
и так далее
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.