PostgreSQL 8.4 を使用して OS X 上の Rails でアプリを開発しています。標準のテキスト クエリで大文字と小文字が区別されないように、アプリのデータベースをセットアップする必要があります。例えば:
SELECT * FROM documents WHERE title = '信じられないほどのドキュメント'
次と同じ結果を返す必要があります。
SELECT * FROM documents WHERE title = '信じられないほどのドキュメント'
明確にするために、私は使いたくない:
(1) where 句またはその他のタイプの特別な比較演算子での LIKE
(2) 列データ型のcitextまたはその他の特別な列インデックス
(3) Sphinx のような全文ソフトウェア
私がしたいのは、大文字と小文字を区別しないテキスト比較をサポートするようにデータベース ロケールを設定することです。私は Mac OS X (10.5 Leopard) を使用しており、既に Encoding を "LATIN1" に設定し、Collation と Ctype の両方を "en_US.ISO8859-1" に設定しようとしました。これまでのところ成功していません。
どんな助けや提案も大歓迎です。
ありがとう!
アップデート
回答者に敬意を表して、回答の 1 つを正解としてマークしました。ただし、提案されたものとは異なる方法でこの問題を解決することを選択しました。アプリケーションをさらに検討した結果、データベース フィールドに対して大文字と小文字を区別しない比較が必要なインスタンスはごくわずかであるため、大文字と小文字を区別せずに比較する必要があるフィールドに対してシャドウデータベース フィールドを作成します。たとえば、name と name_lower です。私はどこかでこのソリューションに出くわしたと信じています。うまくいけば、PostgreSQL は、SQL Server が将来提供するものと同様の照合オプション (すなわち DOCI) を許可します。
回答してくれたすべての人に感謝します。