MySql FULLTEXT соответствует списку ключевых слов из таблицы поиска - PullRequest
0 голосов
/ 08 июня 2011

Я не знаю, возможно ли это, но это упростило бы мои вычисления, чтобы иметь возможность сопоставлять каждое слово в таблице поиска с одним запросом.(в противном случае, я, вероятно, извлеку таблицы в память и запрограммирую последовательность запросов на python):

SELECT count(*) FROM input_form
WHERE MATCH (title,story) AGAINST (word);

Вышеприведенное вернет счетчик количества историй, содержащих слово, но затеместь ли способ заставить его повторить этот подсчет для каждого слова в таблице, содержащей эти слова?

SELECT 
word,
count(MATCH (title,story) AGAINST (word))
FROM keywords;

Что-то в этом роде?Обратите внимание, что заголовок и история взяты из одной таблицы, а слово - из другой.

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Да.Через некоторое время я решил, что это может быть почти невозможно в MySql, но я использовал метод db.cursor () и cursor.execute () модуля python MySql внутри цикла для генерации необходимой таблицы, а затем загрузил ее вбазы данных (поскольку делать это динамически для страницы было бы сумасшествием).

0 голосов
/ 08 июня 2011

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

SELECT tbl.word, count(*) FROM (SELECT * FROM input_form WHERE MATCH(title, story) AGAINST (word)) as tbl;

Возможно, вам придется добавить еще один уровень вложенности, если я вспомню.

...