Kouhei Sutou
kou****@clear*****
2014年 8月 11日 (月) 18:03:45 JST
須藤です。 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/