|
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_ */
|