[groonga-dev,01140] Re: 特定条件にマッチするレコードの一括削除

Back to archive index

ongaeshi ongae****@gmail*****
2012年 12月 20日 (木) 10:59:50 JST


ongaeshiです。

2012年12月19日 22:08 Kouhei Sutou <kou****@clear*****>:

> 須藤です。
>
> In <CA+vp****@mail*****>
>   "[groonga-dev,01138] 特定条件にマッチするレコードの一括削除" on Tue, 18 Dec 2012 10:03:02
> +0900,
>   ongaeshi <ongae****@gmail*****> wrote:
>
> > rroongaで特定の条件にマッチするレコードを削除する時、
> >
> > def remove_match_path(path)
> >  result = search(path)          # 内部で Groonga::Table#select を呼んでレコードを抽出
> >
> >   result.each do |record|       # 検索結果をeachで辿って・・
> >     @table[record.path].delete  # Groonga::Recored#delete で削除
> >   end
> > end
> >
> > ・・という方法をとっていますが、数万オーダー位の
> > レコードを削除しようとすると時間がかかり困っています。
>
> ですよね!
>
> > 少し調べてみた所、
> >
> > groonga 1.2.9リリース
> > http://groonga.org/ja/blog/2011/12/29/release.html
> >
> > にて「レコードの一括削除に対応」というトピックを見つけました。
> >
> > 紹介されていた「特定条件にマッチするレコードの一括削除」を
> > 【rroongaから】行うことは可能でしょうか?
>
> できません!
>
> なので、作ります!
> ↓こんな感じのものを作ると思います。
>
>   table.delete do |record|
>     # table.selectと同じように条件を指定する
>   end
>
> Cレベルでカーソルを回すのでRubyレベルでループを回してレコー
> ドを削除するよりも断然速くなると思います!
>

おお!ありがたいですー。
実装されるのを楽しみにしております。

-- 
/******************************************
 ongaeshi
 MAIL:   ongae****@gmail*****
 WEB:   http://ongaeshi.me
 Twitter: http://twitter.com/ongaeshi
 ******************************************/



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