У меня есть 2 таблицы, и они имеют следующие столбцы.
articles: id (PK), article (longtext), date (date)
keywords: id (PK), keyword (varchar)
На данный момент я могу только это сделать, выполнить поиск по жесткому ключевому слову и отобразить текст, в котором слово встречается чаще всего:
SELECT * , MATCH (article) AGAINST ("keyword*" IN BOOLEAN MODE) AS relevance
FROM `articles`
WHERE MATCH (article) AGAINST ("keyword*" IN BOOLEAN MODE) ORDER BY relevance DESC LIMIT 10
Как я могу искать, сколько раз каждое ключевое слово (Таблица: ключевые слова) появляется в каждом тексте (Таблица: статьи)?
Я пробовал это (я не знаю, возможно ли это?), Но я получаю «Неверный аргумент ПРОТИВ»:
SELECT keyword
FROM keywords
CROSS JOIN articles
WHERE MATCH (keywords.keyword)
AGAINST (articles.article IN NATURAL LANGUAGE MODE)
РЕДАКТИРОВАТЬ ДЛЯ Гордона Линоффа:
Table : Keywords
Id Keyword
1 first
2 second
3 text
4 keyword
-
Table : Articles
Id Article
1 the first text
2 the second text
3 text text text
Желаемые результаты:
Keyword score
text 5
first 1
second 1
keyword 0