Tomomi Yamamoto
yamam****@gmail*****
2007年 12月 23日 (日) 22:41:23 JST
幸坂さん ありがとうございます。なるほどですね。 これって漢字交じりや複数のカラムを対象にしたインデックスでも大丈夫なのでしょうか? やってみます。 07/12/21 に kousa****@nttda*****<kousa****@nttda*****> さんは書きました: > 幸坂です。こんにちは。 > > 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 > >