kousa****@nttda*****
kousa****@nttda*****
2007年 12月 21日 (金) 09:08:52 JST
幸坂です。こんにちは。 create function kata2hira (text) returns text as 'select translate($1, ''アイウ(略)ヲン'', ''あいう(略)をん'')' language sql immutable; create index idx on tab using fulltextb(kata2hira(col)); select * from tab where kata2hira(col) @@ kata2hira('イケメン'); とすればカタカナが全てひらがなに変換されて、 山本さんの意図した検索が可能になります。 (略)は全てのカタカナ・ひらがなが入ります。 形態素(fulltext)はあまり意味がなくなるので、 N-gramを使う必要があります。 試してみてください。 > -----Original Message----- > From: ludia****@lists***** > [mailto:ludia****@lists*****] On Behalf > Of Tomomi Yamamoto > Sent: Thursday, December 20, 2007 5:07 PM > To: ludia****@lists***** > Subject: [Ludia-users 160]ひらがなでもカタカナでも検索したいんですが・・・ > > 山本です。 > > Ludiaになるのか、Senna・MeCabになるのか、不明なため失礼いたします。 > > データベース上に登録してあるテキストから、指定した文字列がひらがなでもカタ カナでも引っかかるようにと考えています。 > (例えば、「イケメン」でも「いけめん」でも、文章中の「イケメン」を引っぱっ てこれるなど) > > このような曖昧な検索を行わせるためには、何か設定が必要なのでしょうか? > > 初心者的な質問で申し訳ありません。 > ご教授いただければ幸いです。 > > 【環境】 > Ludia 1.4.0 > (mecab-0.96、mecab-ipadic 2.7.0-20070801、mecab-java > 0.96、mecab-jumandic 5.1-20070304、Senna 1.0.9) > PostgreSQL 8.1.9 > > 【設定】 > [postgres.conf] > custom_variable_classes = 'ludia' > ludia.max_n_sort_result = 100000 > ludia.enable_seqscan = on > ludia.seqscan_flags = 1 > ludia.sen_index_flags = 19 > ludia.max_n_index_cache = 16 > ludia.initial_n_segments = 1024 > > _______________________________________________ > Ludia-users mailing list > Ludia****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/ludia-users >