[EP-tech] Re: Search, for partial matches
Sebastien Francois
sf2 at ecs.soton.ac.uk
Tue Jan 21 15:44:41 GMT 2014
Perhaps your email field is of type "email" or "id" in which case an
exact match is performed?
Try setting the "match" parameter to "IN" in your search (match is the
3rd argument of ->add_field)
Also how stuff is searched/indexed is defined in the metafield classes
(e.g. look at MetaField/Email::get_index_codes) - look what's in your
foo__rindex table to see what has been indexed.
Seb.
On 21/01/14 15:21, Ian Stuart wrote:
> I want to perform a search... however I want to search for
> a) all records where *part* of the field matches, and
> b) I do not want that search to be case-sensitive
>
> my $email = 'Ian';
> my $ds = $session->get_repository->get_dataset('foo');
> my $searchexp = EPrints::Search->new(
> session => $session,
> dataset => $ds,
> );
> $searchexp->add_field( $ds->get_field('email'), $email );
> warn $searchexp->render_description->toString;
> my $results = $searchexp->perform_search;
> warn "found " . $results->count . " records\n";
>
> returns 0 matches, even though there is at least one user (me) with an
> email address of "ian.stuart at ed...." in the dataset foo
>
> Any suggestions?
> (as the dataset isn't part of the normal EPrints system, indexing
> worries me [and I don't know who to set it up either, but that's another
> story])
>
More information about the Eprints-tech
mailing list