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;
124 virtual void operator()(Xapian::Document& doc,
const apt::PackageRecord& rec)
const = 0;
130 Xapian::Database&
db() {
return m_db; }
133 const Xapian::Database&
db()
const {
return m_db; }
139 bool hasData()
const {
return m_timestamp > 0; }
153 bool rebuildIfNeeded(
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;
173 Xapian::Query makePartialORQuery(
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)
185 std::string t = toLower(*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;
202 Xapian::Query makeRelatedQuery(
const std::string& pkgname)
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;
const Xapian::valueno VAL_ITERATING_RATING
Definition: textsearch.h:45
time_t timestamp() const
Timestamp of when the Xapian database was last updated.
Definition: textsearch.h:136
const Xapian::valueno VAL_ITERATING_SECURITY
Definition: textsearch.h:48
Xapian::Database m_db
Definition: textsearch.h:106
const Xapian::valueno VAL_ITERATING_FUNCTIONALITY
Definition: textsearch.h:46
const Xapian::valueno VAL_ITERATING_USABILITY
Definition: textsearch.h:47
const Xapian::valueno VAL_APT_PACKAGE_SIZE
Definition: textsearch.h:43
Xapian::Stem m_stem
Definition: textsearch.h:107
Xapian::Query makeORQuery(const ITER &begin, const ITER &end) const
Build a query with the given keywords, specified as iterators of strings.
Definition: textsearch.h:179
const Xapian::valueno VAL_ITERATING_QUALITY
Definition: textsearch.h:50
const Xapian::Database & db() const
Access the Xapian database.
Definition: textsearch.h:133
const Xapian::valueno VAL_ITERATING_PERFORMANCE
Definition: textsearch.h:49
-*- C++ -*- (c) 2006, 2007 Petr Rockai me@mornfall.net
Definition: apt.cc:43
RecordParser specialised with access methods for common Debian package information.
Definition: packagerecord.h:36
const Xapian::valueno VAL_ITERATING_ADOPTION
Definition: textsearch.h:52
High-level access to the Apt cache, as a data provider for the ept framework.
Definition: apt/apt.h:60
bool hasData() const
Returns true if the index has data.
Definition: textsearch.h:139
Maintains and accesses a Xapian index of package descriptions.
Definition: textsearch.h:102
const Xapian::valueno VAL_POPCON
Definition: textsearch.h:44
time_t m_timestamp
Definition: textsearch.h:105
const Xapian::valueno VAL_ITERATING_SUPPORT
Definition: textsearch.h:51
Xapian::Database & db()
Access the Xapian database.
Definition: textsearch.h:130
const Xapian::valueno VAL_APT_INSTALLED_SIZE
Definition: textsearch.h:42