Поиск текста по всем ключевым словам в другой таблице - PullRequest
0 голосов
/ 16 июля 2011

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

1 Ответ

1 голос
/ 16 июля 2011

Если вы представляете свои тексты как

| text_id | count | word      |
|---------+-------+-----------|
|       1 |     1 | nice      |
|       1 |     2 | weather   |
|       1 |     3 | no?       |
|       2 |     1 | Mayer     |
|       2 |     2 | Hawthorne |
|       2 |     3 | has       |
|       2 |     4 | soul      |

где текст с идентификатором 1 - «хорошая погода, нет?», Например, вы можете рассчитать оценки текста, используя таблицу ключевых слов

| keyword   | weight |
|-----------+--------|
| weather   |      2 |
| nice      |      3 |
| Hawthorne |     10 |
| soul      |      5 |

с

SELECT t.text_id AS text_id, SUM(k.weight) AS score
FROM texts t
LEFT JOIN keywords k
ON k.keyword == t.word
GROUP BY t.text_id;

в результате

| text_id | score |
|---------+-------|
|       1 |     5 |
|       2 |    15 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...