--- a/src/query/docseq.h
+++ b/src/query/docseq.h
@@ -93,10 +93,21 @@
/** Get abstract for document. This is special because it may take time.
* The default is to return the input doc's abstract fields, but some
* sequences can compute a better value (ie: docseqdb) */
+ virtual bool getAbstract(Rcl::Doc& doc, vector<string>& abs) {
+ abs.push_back(doc.meta[Rcl::Doc::keyabs]);
+ return true;
+ }
virtual string getAbstract(Rcl::Doc& doc) {
- return doc.meta[Rcl::Doc::keyabs];
- }
-
+ vector<string> v;
+ getAbstract(doc, v);
+ string abstract;
+ for (vector<string>::const_iterator it = v.begin();
+ it != v.end(); it++) {
+ abstract += *it;
+ abstract += "... ";
+ }
+ return abstract;
+ }
virtual bool getEnclosing(Rcl::Doc&, Rcl::Doc&) = 0;
/** Get estimated total count in results */
@@ -152,7 +163,13 @@
{}
virtual ~DocSeqModifier() {}
- virtual string getAbstract(Rcl::Doc& doc)
+ virtual bool getAbstract(Rcl::Doc& doc, vector<string>& abs)
+ {
+ if (m_seq.isNull())
+ return false;
+ return m_seq->getAbstract(doc, abs);
+ }
+ virtual string getAbstract(Rcl::Doc& doc)
{
if (m_seq.isNull())
return "";