Kouhei Sutou
kou****@clear*****
2011年 4月 4日 (月) 10:15:24 JST
須藤です。 In <bf2739c7-9f61-3ebd-9767-622983d0990e @ api103> "[groonga-dev,00482] rroongaのoffset、limit" on Mon, 04 Apr 2011 04:08:12 +0900, "Endo Akira" <endo4****@goo*****> wrote: > rroongaですが、offset、limitを使うにはどうしたらいいでしょうか。 Table#sortを使ってください。 http://groonga.rubyforge.org/rroonga/Groonga/Table.html#method-i-sort > Groonga["items"].select(offset: 0, limit: 10) > > とやったら、そんなkeyはないよ、と怒られました。 主キー(_keyカラム)で昇順にソートしてoffsetとlimitを使う場 合は以下のようになります。 Groonga["items"].sort([["_key", :asc]], offset: 0, limit: 10) もし、ページネーションをしたいのであればTable#paginateの方が 便利です。 (あ、メソッドのドキュメントを書き忘れている。。。) http://groonga.rubyforge.org/rroonga/Groonga/Table.html#method-i-paginate ↓で↑と同じ動作になります。 (:pageは0ベースではなく1ベースなことに注意。) Groonga["items"].paginate([["_key", :asc]], page: 1, size: 10) paginateから返ってくるテーブルオブジェクトはsortから返って来 るテーブルオブジェクトと違ってGroonga::Paginationモジュールが extendされています。このため、Groonga::Paginationモジュールの メソッドを使って、返ってきたオブジェクトからページネーション 用の情報を取得することができます。 (あ、こっちもドキュメントを書き忘れている。。。) http://groonga.rubyforge.org/rroonga/Groonga/Pagination.html > なお、rroonga1.2.0をinstallしたら、groongaは1.0.0しかはいらないようなのですが。 もう少し詳しく状況を教えてもらえますか? 以下のスクリプトを実行した結果を見せてもらえると助かります。 require 'groonga' p Groonga::VERSION p Groonga::BINDINGS_VERSION $LOADED_FEATURES.each {|path| system("ldd #{path}") if /groonga.so/ =~ path} -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) プログラミングが好きなソフトウェア開発者を募集中: http://www.clear-code.com/recruitment/