mysql - извлекает определенные слова из текстового поля, используя полнотекстовый поиск - PullRequest
0 голосов
/ 19 апреля 2011

Мой вопрос немного похож на Извлечение определенных слов из текстового поля в mysql , но теперь то же самое.

У меня есть текстовое поле со словами внутри. В моем языке слово может иметь много разных окончаний. Мне нужно найти это окончание.

Я использую полнотекстовый поиск mysql, но мне нужно иметь доступ к базе данных индекса, где все поля «обрезаются» до слов и подсчитываются слова. Затем я мог найти «тест *» и быстро найти «тест», «тестирование», «тестирование». Мне нужен список всех endigns, которые существуют в моей базе данных, это моя основная цель.

Как так, я могу получить записи с определенными словами "test *" в нем, но мне нужно не только определить местонахождение вхождения в поле, но и как-то сгруппировать, чтобы я получил список всех слов, которые, например, начать с «теста». Мне не нужно местоположение, в котором они находятся, просто список, сгруппированный таким образом, чтобы «тестирование» записывалось не 10 раз, а только один раз (возможно, счетчик того, сколько раз оно найдено, но не обязательно).

Есть ли способ извлечь эту информацию из поля fulltextsearch или я должен разбить все эти поля на слова и сделать таблицу индексов полной слов, и просто сделать "подобное" слово% "и сгруппировать по разным результатам? не знаю, как это сделать на практике, но просто укажите мне правильное направление, пожалуйста.

Итак, подведем итог: у меня есть текст, и мне нужно выяснить, какие слова находятся внутри, которые начинаются с «test», как «test», «test», «test» и т. Д ... Это не делает смысл в английском, но в моем языке это происходит так, как у нас одно и то же слово на разных концах, и их так много, иногда 20, мне нужно выяснить, какие из них есть, чтобы я мог составить таблицу синонимов;

UPDATE:

База данных содержит идентификатор столбца (int), ингредиенты (текст) и рецепт (текст).

Данные в ингредиентах - это ингредиенты для приготовления пищи с разными окончаниями, например:

1 яйцо 2 яйца

и т.д.

1 Ответ

1 голос
/ 19 апреля 2011

Вы можете сбросить все слова, присутствующие в индексе. И это также показывает частоту каждого слова. Например. тест используется 200 раз, тестирование - 300 раз.

Руководство для этого: http://dev.mysql.com/doc/refman/5.0/en/myisam-ftdump.html

...