WORD
Postgres 関数を作成していくつかのテーブル行をスキャンし、AMOUNT
(頻度)を含むテーブルを作成できるかどうかを知りたいですか? 私の目標は、このテーブルを使用してワード クラウドを作成することです。
2380 次
2 に答える
5
簡単な方法がありますが、遅くなる可能性があります (テーブルのサイズによって異なります)。テキストを配列に分割できます。
SELECT string_to_array(lower(words), ' ') FROM table;
これらの配列を使用して、unnest
それらを集約できます。
WITH words AS (
SELECT unnest(string_to_array(lower(words), ' ')) AS word
FROM table
)
SELECT word, count(*) FROM words
GROUP BY word;
これは簡単な方法ですが、句読点ではなくスペースでのみ単語を分割するなど、いくつかの問題があります。
その他の、おそらくより良いオプションは、 PostgreSQL 全文検索を使用することです。
于 2013-02-19T12:57:34.433 に答える