[groonga-dev,02611] Re: [mroonga] asterisk wildcard operator

Back to archive index

Naoya Murakami visio****@gmail*****
2014年 8月 13日 (水) 06:47:52 JST


村上です。

本件なんですが、Groongaで以下のようなnear関数を追加することにより、文字数を
指定した近傍検索ができるようになりました。

https://github.com/naoa/groonga-function-near
(このプラグインはgrn_proc_set_selectorのAPIが公開されているのが前提です。)

そこで、Mroongaから使うことを想定して、Groonga本体にnear関数を実装したいと
考えているのですが、いかがでしょうか?

Groongaのnear関数を実装した上で、TritonnのN[数値]"文字列"の演算子
(これはNプラグマっていうんですかね?)相当の処理をMroongaに実装を
してみたいと考えています。

http://qwik.jp/senna/query.html

Mroongaから使おうと考えると、Groongaのnear関数には、たぶん、(betweenの
ケースを習うと)castを入れたり、引数をまだ改修しないといけないかもしれない
なぁとは思っています。

たぶん、以下のあたりでkeywordから先頭の演算子とキーワードを取り出して、
expressionにgrn_expr_appendで関数を組み立ててやれば、なんとかなるん
じゃないかなぁと思っています。
(あまり、grn_expr_appendの扱いとデバッグの仕方にあまり慣れていないので、
まだ、Mroonga側で動く処理を試せていませんが。)

https://github.com/mroonga/mroonga/blob/master/ha_mroonga.cpp#L7788

うまくいくかわかりませんが、よければ、この実装を自分にやらせてください。

自分の用途としてはGroongaのプラグインで動くだけでもいいので、だめなら、APIを
公開していただくだけでもいいです。



2014年8月11日 18:35 warp kawada <warp.****@gmail*****>:

> なるほどー。
>
> UDFとかで、使えるとうれしいですね。
>
>
>
> 2014年8月11日 18:03 Kouhei Sutou <kou****@clear*****>:
>
> > 須藤です。
> >
> > In <CA+e43RO4vm1-30X0PCsFpd-6eoVvtCGDf9w_AaFs0EU+0O0_XQ****@mail*****>
> >   "[groonga-dev,02599] Re: [mroonga] asterisk wildcard operator" on Mon,
> > 11 Aug 2014 17:28:32 +0900,
> >   warp kawada <warp.****@gmail*****> wrote:
> >
> > > あー、なるほど。じゃ、mregexp が使えれば、
> > >
> > > MATCH(..) AGAINST ('*D+ 中国 外国' IN BOOLEAN MODE) AND .. mregexp(...,
> > > '中国..外国')
> > >
> > > が出来そうですね。でも、mregexp が動いてくれないんですけね (涙
> > >
> > > 例が悪かったです。
> > > 「中国日本外国」や「中国人外国」をヒットさせたいのです。
> >
> > 普通のSQLだとできないんですけど、Groongaの機能を使えばできる
> > んですよねぇ。
> >
> > 「column *N "中国 外国"」みたいに書ける近傍検索演算子という
> > のがあるんですけど、
> >
> >
> >
> http://groonga.org/ja/docs/reference/grn_expr/script_syntax.html#near-search-operator
> >
> > これを使うと期待する挙動になると思います。
> >
> > 「中国」と「外国」の間に何文字までOKかはカスタマイズできない
> > んですけど。。。今は常に10文字(あるいは10単語)です。
> > 独自の演算子じゃなくて関数にした方がよさそうですねぇ、これ。
> >
> >
> > --
> > 須藤 功平 <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/
> >
> > _______________________________________________
> > groonga-dev mailing list
> > groon****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
> >
>
>
>
> --
> ===
> Yukihiro KAWADA
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>



groonga-dev メーリングリストの案内
Back to archive index