1 #ifndef EPT_TEXTSEARCH_TEXTSEARCH_H
2 #define EPT_TEXTSEARCH_TEXTSEARCH_H
39 namespace textsearch {
110 static std::string
toLower(
const std::string& str);
118 void normalize_and_add(Xapian::Document& doc,
const std::string& term,
int& pos)
const;
133 const Xapian::Database&
db()
const {
return m_db; }
155 const std::vector<const ExtraIndexer*>& extraIndexers = std::vector<const ExtraIndexer*>());
160 Xapian::docid
docidByName(
const std::string& pkgname)
const;
165 Xapian::Query
makeORQuery(
const std::string& keywords)
const;
178 template<
typename ITER>
179 Xapian::Query
makeORQuery(
const ITER& begin,
const ITER& end)
const
181 std::vector<std::string> terms;
183 for (ITER i = begin; i != end; ++i)
186 std::string s =
m_stem(t);
189 terms.push_back(
"Z" + s);
191 return Xapian::Query(Xapian::Query::OP_OR, terms.begin(), terms.end());
195 std::vector<std::string>
expand(Xapian::Enquire& enq)
const;
207 double getDoubleValue(
const std::string& pkgname, Xapian::valueno val_id)
const;
212 int getIntValue(
const std::string& pkgname, Xapian::valueno val_id)
const;