シソーラス辞書

ふと思いついたのですが、シソーラス辞書対応は以下のようにすればできますね。
シソーラス辞書 = 類語辞書)

シソーラス辞書作成:
CREATE TABLE thesaurus (col text);
CREATE INDEX idx_thesaurus ON thesaurus USING fulltext(col);
INSERT INTO thesaurus VALUES('音楽 ミュージック 楽器'),
('ピアノ 楽器'),
('学校 スクール 高校 大学'),
('渋谷 澁谷 しぶや');


検索対象を作成:
CREATE TABLE tab (col text);
CREATE INDEX idx ON tab USING fulltext(col);
INSERT INTO tab VALUES('今日は学校に行きました。'),
('ピアノは得意だけど、バイオリンは苦手'),
('高校は行ってないけど、大学は卒業した');


シソーラス辞書を利用して検索:
SELECT * FROM tab WHERE col @@
(SELECT * FROM thesaurus WHERE col @@ '学校' LIMIT 1);

スコア付けも、もう一工夫すればできるでしょう。
問題は、「シソーラス辞書をどこから手に入れるか」ですね。


結論:
Ludiaはシソーラス辞書対応している。
辞書は自分で用意してください。


追記:

SELECT * FROM tab WHERE col @@ ANY
(SELECT * FROM thesaurus WHERE col @@ '学校');

とすると、シソーラス辞書に同じ単語が含まれていても対応できますが、
プランが微妙。
シーケンシャルスキャンになってしまう・・・。