Как я могу получить самые популярные слова в таблице через mysql?

У меня есть таблица со столбцом BLOB. Что я хочу сделать, так это заставить его выбирать слова и перечислять их по порядку.

Например, если он содержал:

  • Боб Смит любит сыр, но любит читать
  • Чарли любит шоколадное молоко
  • Чарл любит мангу, но также любит печенье.

Тогда я бы получил

  1. нравится
  2. любит

в результате... возможно ли это, и если да, то как?

Я хотел бы иметь возможность сделать это только в mysql, но я также могу использовать php.

Заранее спасибо, Кенни


person kennyisaheadbanger    schedule 23.07.2009    source источник


Ответы (3)


Не думайте, что для этого есть какая-либо встроенная функция MySQL, поэтому вам, вероятно, лучше всего использовать PHP, чтобы сделать работу за вас, используя либо explode(' ', $myString), либо str_word_count($myString, 1) для создания массива, содержащего каждое слово. Затем прокрутите каждое слово в массиве и подсчитайте их.

person Jacob Wyke    schedule 23.07.2009

Sphinx Search (http://sphinxsearch.com/) — это приложение, которое много делает для поиска по полному тексту в mysql. а также другие базы данных и форматы файлов. Короче говоря, он предлагает поиск по таблицам mysql.

Один из его инструментов выполняет подсчет слов, ниже приведен скрипт bash, чтобы заставить его выводить самые популярные слова в базе данных:

GET_TOP_X_STOP_WORDS=27
WORD_FREQ_FILE=~/wordfreq.txt
/usr/local/bin/indexer test1 --buildstops $WORD_FREQ_FILE $GET_TOP_X_STOP_WORDS --buildfreqs
person Mark L    schedule 23.07.2009
comment
извините... но я бы не смог это запустить - person kennyisaheadbanger; 26.07.2009

Я переработал свой код, поэтому мне больше не нужно это делать... это кажется невозможным со стандартными настройками

person kennyisaheadbanger    schedule 03.08.2009