質問: Railsでカタカナの大文字小文字を無視した検索したい時に現状は ``` str.tr('ァィゥェォヵヶッャュョヮ','アイウエオカケツヤユヨワ') ``` などのようにして検索対象の文字列の小文字を大文字に変えたコピーのカラムを作り、検索で渡される文字列も同様に大文字に変換してから `ILIKE` を使ってマッチさせています。 Postgresqlを使ったRails環境で何かもっと推奨されるシンプルな方法はありますか?
回答: 自分の知る限りでは、実際問題としては、ironsandさんが例示した今のやり方が一番シンプルだと思います。 必ずしもシンプルにはなりませんが、自然言語処理的なアプローチで行くと、例えば lucine + kuromoji の組み合わせで、ライブラリをうまく使うと、文字の正規化の処理については機械的に処理させて、railsでは具体的なその手の処理を書くことを端折ることは可能だと思います。もしかするとmecabでも代用できる部分があるかもしれません。 (文字の正規化には、「、」や「。」などの文字を省いたり、大文字小文字を揃えたり、他にもなんパターンかが全文検索系のアルゴリズムでは使われています) この分野は私も学習中なので実コードで出すだけの手間と確証がとれませんでして、概要程度のことしか申せなくてすみません。あくまでもそんなアプローチもあるにはありそうだ、ということで参考程度にして下されば幸いです。