WebService::Solr を使った追加と検索のサンプル。

WebService::Solr 0.11

localhost:8983
でsolrをうごかしているとき。
solr 1.4.1 のサンプルとか。

#!/usr/bin/perl
use WebService::Solr;
use WebService::Solr::Query;

my $solr = WebService::Solr->new;

my @fields;
my $id_field = WebService::Solr::Field->new( id => 'foobar' );
my $price_field = WebService::Solr::Field->new( price => 10000 );
push(@fields, $id_field);
push(@fields, $price_field);
my $doc = WebService::Solr::Document->new;
$doc->add_fields( @fields );
$doc->boost( 2.0 );
my $id = $doc->value_for( 'id' );
print $doc->to_xml()."\n";

my @docs;
push(@docs, $doc);
$solr->add( @docs );

my $query  = WebService::Solr::Query->new( { id => 'foobar' } );

my $response = $solr->search( $query );
for my $doc ( $response->docs ) {
    print $doc->value_for( 'id' )."\n";
}

実行結果

<doc boost="2"><field name="id">foobar</field><field name="price">10000</field></doc>
foobar