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

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

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

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

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

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

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

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

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

3 ответа

Решение

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

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

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
Другие вопросы по тегам