#!/usr/bin/perl -w -I/opt/eprints3/perl_lib # Search for eprints by title use EPrints; use strict; # Check we got 2 args if( scalar @ARGV != 2 ) { print "Usage: $0 repositoryid word\n"; exit; } my $repositoryid = $ARGV[0]; my $word = $ARGV[1]; # Start session my $session = new EPrints::Session( 1, $repositoryid ); exit( 0 ) unless( defined $session ); # Get archive dataset my $ds = $session->get_repository->get_dataset( "archive" ); # Create search expression my $search = new EPrints::Search( session => $session, dataset => $ds, custom_order => "title" ); # Add filter $search->add_field( $ds->get_field( "title" ), $word, "IN", "ALL" ); my $list = $search->perform_search; # Map function to each result $list->map( sub { my( $session, $dataset, $eprint ) = @_; print $eprint->get_id . ":" . $eprint->get_value( "title" ) . "\n"; } ); # Tidy up $list->dispose(); # End session $session->terminate();