Kouhei Sutou
kou****@clear*****
2015年 10月 20日 (火) 19:18:59 JST
須藤です。 In <CAG72S9+OFotCO=AoVnk****@mail*****> "[groonga-dev,03578] Re: 検索方法について" on Mon, 19 Oct 2015 11:25:51 +0900, 立川弘明 <stand****@gmail*****> wrote: >> 注意点なのですが、シーケンシャルスキャンになったときは大文字 >> 小文字を区別を検索する「普通のLIKE」と同じ動作になることに注 >> 意してください。 >> (インデックスを使ったときは大文字小文字を区別しません。) > > 盲点でした・・・。 > http://groonga.org/ja/docs/reference/regular_expression.html > の「Groongaは正規表現検索にインデックスを使わないときは・・・groonga は > Groonga にも groonga にも両方にマッチします。」の一文が頭にあり、検索文字列を > 小文字に寄せていれば大丈夫と思っていたのですが、よく考えればPGroongaではなく > groongaのドキュメントでした・・・。 > > 全ての検索条件においてインデックスを使用することは難しそうなので、小文字に > 寄せた文字列を格納するカラムを追加し、そのカラムを検索対象とする形で考えています。 あるいはLIKEを使わずにcontent @~ '...'で正規表現を使うことで も解決できます。 INSERT時に頑張る(自分で正規化する)のとSELECT時に頑張る(自 分で正規表現をエスケープする)のだとどっちが割に合うかという トレードオフになるかと思います。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/