Как я могу получить самые популярные слова в таблице через MySQL?
У меня есть таблица с BLOB-столбцом. Я хочу, чтобы он мог выбирать слова и перечислять их по порядку.
Например, если он содержит:
- Боб Смит любит сыр, но любит читать
- Чарли любит шоколадное молоко
- Чарль любит мангу, но любит печенье
Тогда я бы получил
- нравится
- любит
в результате... возможно ли это, и если да, то как?
Я хотел бы иметь возможность сделать это только в 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