Ejemplo n.º 1
0
 // Open the database for searching.
 $database = new XapianDatabase($argv[1]);
 // Start an enquire session.
 $enquire = new XapianEnquire($database);
 // Combine command line arguments up to "--" with spaces between
 // them, so that simple queries don't have to be quoted at the shell
 // level.
 $args = array_slice($argv, 2);
 $separator = array_search("--", $args);
 if ($separator === FALSE) {
     $separator = count($args);
 }
 $query_string = join(" ", array_slice($args, 0, $separator));
 $rset = new XapianRSet();
 foreach (array_slice($args, $separator + 1) as $docid) {
     $rset->add_document(intval($docid));
 }
 $qp = new XapianQueryParser();
 $stemmer = new XapianStem("english");
 $qp->set_stemmer($stemmer);
 $qp->set_database($database);
 $qp->set_stemming_strategy(XapianQueryParser::STEM_SOME);
 $query = $qp->parse_query($query_string);
 print "Parsed query is: {$query->get_description()}\n";
 // Find the top 10 results for the query.
 $enquire->set_query($query);
 $matches = $enquire->get_mset(0, 10, $rset);
 // Display the results.
 print "{$matches->get_matches_estimated()} results found:\n";
 foreach ($matches->begin() as $i => $docid) {
     $n = $i->get_rank() + 1;
Ejemplo n.º 2
0
    }
    if ($mset->get_docid(0) != 2) {
        print "MatchDecider mset has wrong docid in\n";
        exit(1);
    }
}
class testexpanddecider extends XapianExpandDecider
{
    function apply($term)
    {
        return $term[0] !== 'a';
    }
}
$enquire = new XapianEnquire($db);
$rset = new XapianRSet();
$rset->add_document(1);
$eset = $enquire->get_eset(10, $rset, XapianEnquire::USE_EXACT_TERMFREQ, 1.0, new testexpanddecider());
foreach ($eset->begin() as $t) {
    if ($t[0] === 'a') {
        print "XapianExpandDecider was not used\n";
        exit(1);
    }
}
# Check min_wt argument to get_eset() works (new in 1.2.5).
$eset = $enquire->get_eset(100, $rset, XapianEnquire::USE_EXACT_TERMFREQ);
$min_wt = 0;
foreach ($eset->begin() as $i => $dummy) {
    $min_wt = $i->get_weight();
}
if ($min_wt >= 1.9) {
    print "ESet min weight too high for testcase\n";