2

私はpostgresで全文検索をいじっていましたが、疑問に思っていましたが、すべての行の合計単語数を返すことは可能ですか?

だから、あなたが持っているとしましょう

 text_col
 _______
 'dog'
 'dog cat'
 'dog bird dog'

「犬」の数は4、「猫」の数は1、鳥も1である必要があります。

現在、すべてのtsvectorをginインデックス付き列にも保存しています。

もちろん、これはあなたが次のようなことを言うことができるすべての行にまたがるでしょう

select max(ts_count(text_col_tsvector)) from mytable;

(私はそれを作りましたが、あなたが一般的な考えを理解することを願っています)

語彙素の数を返すことだけが可能ですか?もしそうなら、返された語彙素の辞書(または配列)をどのように返すのですか?

4

1 に答える 1

3

どうですか:

select * from ts_stat('select text_col_tsvector from mytable')

編集:つまり:

with words as (
select regexp_split_to_table(text_column , E'\\W+') as word
from mytable
)
select word, count(*) as cnt from words group by 1 order by 2 desc 

于 2012-07-26T22:41:28.027 に答える