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 >