Kouhei Sutou
kou****@clear*****
2014年 9月 22日 (月) 16:56:15 JST
須藤です。 In <CANM+HhfKk92pE2YuXwcfYR=LoZdX****@mail*****> "[groonga-dev,02778] Re: _keyを後から変更したい" on Wed, 17 Sep 2014 23:08:03 +0900, Naoya Murakami <visio****@gmail*****> wrote: > 前々から思っていたのですが、Groongaのloadコマンドは、_keyを指定 > しないと、カラムを更新できないので不便ですよね。 > (まあ、私は基本的にMroonga経由でSQLで更新やっちゃうのですけど。) > > Groongaの組み込みコマンドでdeleteコマンドと同様の指定ができる、 > カラム更新コマンドみたいなものがあると嬉しいかもしれませんね。 そうですよねぇ。 > 自分の用途で必要に駆られたらプラグインで作ろうかなぁと思っていたの > ですが、必要な人がいて、本体に組み込みが可能であれば、作ってみよ > うかと思うのですがいかがでしょうか? > > ・Syntax > > update table column value [key [id [filter]]] > > ・Example > > update Diaries title "今日は残業でした" --key "キー" > update Diaries title "おなかすきました" --id 1 > update Diaries title "削除済" --filter 'created_at < 2012/12/24' > > 色々忙しいかと思いますし、お手すきのタイミングでご検討いただければ > なと思います。 実は、同じような構文で使えるsetというコマンドを作りかけたこ とがあって、その残骸がtableプラグインの中に転がっています。 (plugins/table/table.c。tableプラグイン自体が非推奨ですが。。。) ↑のupdateはカラムの値を文字列で指定していますが、loadと同じ ようにJSONでしないと配列などを表現できないなぁ、でも、 Groonga内部の独自JSONパーサーはloadと蜜結合なのでそのままじゃ 使えないなぁという感じで頓挫したのでした。。。 Rubyでプラグインを書けるようになったらRubyで実装するのがいい んじゃないかなぁと思っていました。多少複雑なので。。。 ↑のupdateの構文みたいに複数のカラムを一緒に指定できないのが いいのか、loadの--valuesみたいにJSONで複数のカラムを一緒にで きるのがいいのかも悩みどころなんですよねぇ。うーん。 -- 須藤 功平 <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/