a/src/rcldb/stemdb.h b/src/rcldb/stemdb.h
...
...
52
#include <vector>
52
#include <vector>
53
#include <string>
53
#include <string>
54
54
55
#include <xapian.h>
55
#include <xapian.h>
56
56
57
#include "synfamily.h"
58
57
namespace Rcl {
59
namespace Rcl {
58
namespace StemDb {
59
60
60
/// Get languages of existing stem databases
61
class StemDb : public XapSynFamily {
61
extern std::vector<std::string> getLangs(Xapian::Database& xdb);
62
public:
63
    StemDb(Xapian::Database& xdb)
64
  : XapSynFamily(xdb, synFamStem)
65
    {
66
    }
62
67
63
/// Delete stem database for given language
68
    /** Expand for a number of languages */
64
extern bool deleteDb(Xapian::WritableDatabase&, const std::string& lang);
69
    bool stemExpand(const std::string& langs,
70
           const std::string& term,
71
           std::vector<std::string>& result);
72
private:
73
    /** Compute stem and call synExpand() */
74
    bool expandOne(const std::string& lang,
75
         const std::string& term,
76
         std::vector<std::string>& result);
77
};
65
78
66
/// Create stem database for given language
79
class WritableStemDb : public XapWritableSynFamily {
67
extern bool createDb(Xapian::WritableDatabase&, const std::string& lang);
80
public:
81
    WritableStemDb(Xapian::WritableDatabase& xdb)
82
  : XapWritableSynFamily(xdb, synFamStem)
83
    {
84
    }
85
    bool createDb(const std::string& lang);
86
};
68
87
69
/// Expand term to stem siblings
70
extern bool stemExpand(Xapian::Database& xdb,
71
             const std::string& lang,
72
             const std::string& term,
73
             std::vector<std::string>& result);
74
}
75
}
88
}
76
89
77
#endif /* _STEMDB_H_INCLUDED_ */
90
#endif /* _STEMDB_H_INCLUDED_ */