[groonga-dev,04694] Re: rroongaでの正規表現

Back to archive index
Kouhei Sutou kou****@clear*****
2018年 10月 17日 (水) 10:04:13 JST


須藤です。

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



More information about the groonga-dev mailing list
Back to archive index