/usr/lib/ruby/gems/1.8/gems/solr-ruby-0.0.8/lib/solr/request/standard.rb
を見るといろいろ使い方が書いてある。
ソートの指定はハッシュを配列で渡すと複数のカラムで重み付けできるみたい。
以下は、全エントリから日付降順で最新の30件を取得する例
require 'rubygems' require 'solr' conn = Solr::Connection.new('http://localhost:8180/solr', :autocommit => :on) request = Solr::Request::Standard.new(:query=>'*:*', :rows=>30, :sort=>[{:created_at=>:descending}]) result = conn.send(request) result.each do |i| puts i['title'] puts i['url'] end
検索結果の中のkeyがシンボルになってないのはどうにも一貫性がなく感じる
一般的にはMySQLとかCSVとかからデータを取り込むものらしい
↓のようにsolr-rubyをつかって一件づつドキュメントを追加することも可能
require 'rubygems' require 'digest/md5' require 'solr' value = {:id => Digest::MD5.new.update("http://rubyist.g.hatena.ne.jp/yuiseki/").to_s, :url => "http://rubyist.g.hatena.ne.jp/yuiseki/", :title => "yuisekiのいまさらruby厨日記", :created_at => Time.now} conn = Solr::Connection.new('http://localhost:8180/solr', :autocommit => :on) doc = Solr::Document.new(value) conn.add(doc)
valueの中身はshcema.xmlで指定した型に合わせてそれっぽく。ハッシュ内のkeyはシンボルの形になってなくてはいけない。
KVSのようにkeyは存在しないのでちょっと勝手がちがう感じ。