※ ChatGPTを利用し、要約された質問です(原文:Postgresql Mecabでの解析について)
Postgresql Mecabでの解析について
このQ&Aのポイント
Postgresのtextsearch_jaを設定しました。Mecabを使用してテーブルのデータを解析し、解析結果をtsvカラムに保存するトリガを設定しました。
しかし、検索時に「0000」というキーワードで検索してもレコードが取得できない問題が発生しました。to_tsqueryやplainto_tsqueryを使用した検索でも同様の結果でした。
「0000」での全文検索の方法はわかりませんでしょうか?
Postgresのtextsearch_jaを設定しました。
そこでMecabを使用しています。
例として以下のテーブルで
create table table1 ( id int, col1 text, col2 text, tsv tsvector );
更新処理時にtsvカラムに解析データが入るようにトリガを設定しました。
col1に「田中00001」をINSERTします。
解析するtsvカラムには「田中」と「00001」が入ります。
ここで、「0000」と検索しても、レコードを取得できませんでした。
投げたSQLは以下のような感じです。
select * from table1 where tsv @@ to_tsquery('japanese', '0000')
select * from table1 where tsv @@ to_tsquery('japanese', '0000')
とした場合はレコードを取得することができます。
以下も試しましたがレコードは取得できませんでした。
select * from table1 where tsv @@ plainto_tsquery('japanese', '0000')
「0000」にて検索した場合に、全文検索の機能でレコードを取得する方法はありますでしょうか?
postgres8.4.5
Mecab 0.98
お礼
まだ検証中ですがtextsearch_sennaを採用しようと思っています。 ありがとうございました。