[Ludia-users 161] Re: ひらがなでもカタカナでも検索したいんですが・・・

Back to archive index

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
> 




Ludia-users メーリングリストの案内
Back to archive index