|
a/src/rcldb/rclquery.cpp |
|
b/src/rcldb/rclquery.cpp |
|
... |
|
... |
224 |
return true;
|
224 |
return true;
|
225 |
}
|
225 |
}
|
226 |
|
226 |
|
227 |
bool Query::getMatchTerms(const Doc& doc, list<string>& terms)
|
227 |
bool Query::getMatchTerms(const Doc& doc, list<string>& terms)
|
228 |
{
|
228 |
{
|
|
|
229 |
return getMatchTerms(doc.xdocid, terms);
|
|
|
230 |
}
|
|
|
231 |
bool Query::getMatchTerms(unsigned long xdocid, list<string>& terms)
|
|
|
232 |
{
|
229 |
if (ISNULL(m_nq) || !m_nq->xenquire) {
|
233 |
if (ISNULL(m_nq) || !m_nq->xenquire) {
|
230 |
LOGERR(("Query::getMatchTerms: no query opened\n"));
|
234 |
LOGERR(("Query::getMatchTerms: no query opened\n"));
|
231 |
return -1;
|
235 |
return -1;
|
232 |
}
|
236 |
}
|
233 |
|
237 |
|
234 |
terms.clear();
|
238 |
terms.clear();
|
235 |
Xapian::TermIterator it;
|
239 |
Xapian::TermIterator it;
|
236 |
Xapian::docid id = Xapian::docid(doc.xdocid);
|
240 |
Xapian::docid id = Xapian::docid(xdocid);
|
237 |
|
241 |
|
238 |
XAPTRY(terms.insert(terms.begin(),
|
242 |
XAPTRY(terms.insert(terms.begin(),
|
239 |
m_nq->xenquire->get_matching_terms_begin(id),
|
243 |
m_nq->xenquire->get_matching_terms_begin(id),
|
240 |
m_nq->xenquire->get_matching_terms_end(id)),
|
244 |
m_nq->xenquire->get_matching_terms_end(id)),
|
241 |
m_db->m_ndb->xrdb, m_reason);
|
245 |
m_db->m_ndb->xrdb, m_reason);
|