須藤です。 In <3BFEA****@mva*****> "[groonga-dev,04683] rroongaでの正規表現" on Thu, 4 Oct 2018 01:17:23 +0900, Masatoshi SEKI <m_seki****@mva*****> wrote: > 小文字に正規化したものに対してマッチさせるため、 > パターンに大文字があるとどれもとマッチしない、ということを知りました。 > (あってる?) だいたいあっています。 NormalizerAutoノーマライザーが正規化した結果に対してマッチさ せていて、そいつが大文字を小文字に正規化します。 > rroongaを読んでわかったのですが、Groongaに渡す際に #source で得た文字列表現を使います。 > sourceですとオプションが引き渡されません。 > そこで、☆の処理を追加して、オプションの情報も含んでくれる #to_s を用いて作ったRegexpを > 与えることにしました。 > > で、おそらく、rroongaの内部でも #source でなく #to_s を使った方がお得じゃないだろうか、と > 思いました。 そうですね! Groongaの方は(?-mix:XXX)だったらXXXと同じように扱うことにす る変更を入れたので、今月末にGroongaをリリースしたらRroongaの 方も#to_sをするようにします。これで、//iのときもいい感じに動 くはずです。ただ、インデックスは使われません。 > (rroongaのAPIでIGNORECASEを追加していいかどうか、については自分には判断つきませんでした) //iをつけるとインデックスを使えないので、勝手に追加するのは よくないですねぇ。ユーザーが指定した時だけそれを尊重するのが よいと思います。(なので、Rroongaは勝手に//iにしない。) -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <https://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ データ処理ツールの開発: https://www.clear-code.com/blog/2018/7/11.html