[Xapian-discuss] PHP get_termpos problem
Mike Ragalie
ragalie at fas.harvard.edu
Mon Aug 20 22:37:48 BST 2007
Hello!
I just started playing around with Xapian using the php bindings and am
having some trouble getting the term positions for terms returned by a
query. The code I'm currently using reads like so:
$database = new XapianDatabase("/tmp/xapian");
$enquire = new XapianEnquire($database);
...
$enquire->set_query($query);
$matches = $enquire->get_mset(0, 50);
...
$i = $matches->begin();
while (!$i->equals($matches->end())) {
$curdoc = $i->get_document();
$terms = $enquire->get_matching_terms_begin($curdoc->get_docid());
while
(!$terms->equals($enquire->get_matching_terms_end($curdoc->get_docid()))) {
$curterm = $terms->get_term();
$pos = $terms->positionlist_begin();
while (!$pos->equals($terms->positionlist_end())) {
$curpos = $pos->get_termpos();
echo " - " . $curpos;
$pos->next();
}
$terms->next();
}
$i->next();
}
When I run the script, I get this: "InvalidOperationError:
VectorTermList::positionlist_begin() isn't meaningful"
I tried using $database->positionlist_begin($curdoc->get_docid(), $curterm)
as well, but when I used that the while loop simply didn't run.
Anyway, I'm probably making some stupid error, but if you have any ideas I'd
love to be able to get the term positions. I didn't see anything in the
archives about this :(
Thanks,
-Mike
--
Michael Ragalie
Chair, Student Affairs Committee
Harvard Undergraduate Council
Email: ragalie at fas.harvard.edu
Mobile: 262.358.1364
More information about the Xapian-discuss
mailing list