Wordforms нехочет работать.

Приветствую ! Коем образом опять не работает wordforms.

В общем следующая идея чтобы дог и догс было одинаково результатов, хотя записи соответствуют ключу по большей части ‘дог’.

К примеру запись в wordforms.txt такова:
дог > догс
догс > дог
Итд…

А значит, результаты то разные, где в ревом случае -20, в другом 2.

Что не так то… опять ? Шо вы колеги скажете на это? :roll_eyes::sweat_smile:

чтобы дог и догс было одинаково результатов

Чтоб так было “дог” и “догс” должны превращаться в одно слово с помощью wordforms, а не в разные, а у вас “дог” становится “догс”, а “догс” становится “дог”. Просто меняете слова местами:

➜  ~ cat /tmp/wf
dog > dogs
dogs > dog

➜  ~ mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) wordforms='/tmp/wf'; call keywords('dog dogs', 't')"
+------+-----------+------------+
| qpos | tokenized | normalized |
+------+-----------+------------+
| 1    | dog       | dogs       |
| 2    | dogs      | dog        |
+------+-----------+------------+

Должно быть так:

➜  ~ cat /tmp/wf
dogs > dog

➜  ~ mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) wordforms='/tmp/wf'; call keywords('dog dogs', 't')"
+------+-----------+------------+
| qpos | tokenized | normalized |
+------+-----------+------------+
| 1    | dog       | dog        |
| 2    | dogs      | dog        |
+------+-----------+------------+
1 Like

Спасибо за быстрое разъяснение. Буду тестить. Мне по логике казался мой подход верный, также я учитывается то, что в вордформс одно слово можно преобразовать только один раз…
П.с. скажите а Дог и дог это понимается как одно слово или же два разных?

все слова проходят трансформацию charset_table - если у вас используется default - то все слова преобразуются к нижнему регистру и исходные Dog и dog становятся dog

Вы можете использовать вызов call keywords('dog dogs', 't') чтобы смотреть на результат токенизации, как приведено выше

Спасибо! Однако важный момент как правильно составлять wordforms, то есть итожим всё к единственному числу или к множествненому? Ну в смисле что > куда или куда > что, так сказать - перенаправляем в случае, когда более одного перенаправления на один результат.

в destination form лучше указывать самое общее слово \ корень \ единственное число

1 Like

Спасибо, так я и думал, что чтото у меня не то. Придётся исправлять…