moved code around
This commit is contained in:
parent
906e58feff
commit
fc4adfdbaa
@ -107,6 +107,20 @@ class Db::Native {
|
|||||||
int getPageNumberForPosition(const vector<int>& pbreaks, unsigned int pos);
|
int getPageNumberForPosition(const vector<int>& pbreaks, unsigned int pos);
|
||||||
|
|
||||||
bool dbDataToRclDoc(Xapian::docid docid, std::string &data, Doc &doc);
|
bool dbDataToRclDoc(Xapian::docid docid, std::string &data, Doc &doc);
|
||||||
|
|
||||||
|
bool xdocToUdi(Xapian::Document& xdoc, string &udi)
|
||||||
|
{
|
||||||
|
Xapian::TermIterator xit = xdoc.termlist_begin();
|
||||||
|
xit.skip_to(wrap_prefix(udi_prefix));
|
||||||
|
if (xit != xdoc.termlist_end()) {
|
||||||
|
udi = *xit;
|
||||||
|
if (!udi.empty()) {
|
||||||
|
udi = udi.substr(wrap_prefix(udi_prefix).size());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/** Compute list of subdocuments for a given udi. We look for documents
|
/** Compute list of subdocuments for a given udi. We look for documents
|
||||||
* indexed by a parent term matching the udi, the posting list for the
|
* indexed by a parent term matching the udi, the posting list for the
|
||||||
|
|||||||
@ -421,13 +421,7 @@ bool Query::getDoc(int xapi, Doc &doc)
|
|||||||
data = xdoc.get_data();
|
data = xdoc.get_data();
|
||||||
m_reason.erase();
|
m_reason.erase();
|
||||||
Chrono chron;
|
Chrono chron;
|
||||||
Xapian::TermIterator it = xdoc.termlist_begin();
|
m_db->m_ndb->xdocToUdi(xdoc, udi);
|
||||||
it.skip_to(wrap_prefix(udi_prefix));
|
|
||||||
if (it != xdoc.termlist_end()) {
|
|
||||||
udi = *it;
|
|
||||||
if (!udi.empty())
|
|
||||||
udi = udi.substr(wrap_prefix(udi_prefix).size());
|
|
||||||
}
|
|
||||||
LOGDEB2(("Query::getDoc: %d ms for udi [%s], collapse count %d\n",
|
LOGDEB2(("Query::getDoc: %d ms for udi [%s], collapse count %d\n",
|
||||||
chron.millis(), udi.c_str(), collapsecount));
|
chron.millis(), udi.c_str(), collapsecount));
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user