слово сходство / сходство в MySQL - PullRequest
1 голос
/ 21 марта 2011

У меня есть столбец, который содержит жанр фильма (до трех спецификаторов, разделенных косой чертой), таких как «комедия / мелодрама / приключение».Есть ли в mysql или php функция или нечто подобное, которая позволила бы мне взять жанр фильма, сравнить его с другими жанрами других рядов и упорядочить их по подобию?Например, если у вас есть фильм с комедией / романс / приключением, то сначала будут возвращаться фильмы со всеми тремя, а затем фильмы с двумя из этих жанров и, наконец, фильмы с возможно одним из этих жанров.

Ответы [ 2 ]

3 голосов
/ 21 марта 2011

Если вы включите полнотекстовое индексирование в столбце жанра, вы можете сделать это.Я бы порекомендовал использовать для этого внешнюю систему полнотекстового поиска, такую ​​как sphinx, поскольку встроенная полнотекстовая индексация MySQL действительно не так уж и хороша.

Начните с установки полной-текстовый указатель на поле жанра

ALTER TABLE movies ADD FULLTEXT INDEX (genre);

Тогда вы сможете выбрать из этого примерно так:

SELECT *, MATCH(genre) AGAINST ('comedy romance adventure') AS relevancy FROM movies ORDER BY relevancy DESC;
0 голосов
/ 22 марта 2011

Я бы также предложил полнотекстовый индекс, например Sphinx или Apache Solr для поиска по релевантности.

Существует ряд связанных сообщений по теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...