00001 00022 #ifndef XAPIAN_INCLUDED_EXACTPHRASEPOSTLIST_H 00023 #define XAPIAN_INCLUDED_EXACTPHRASEPOSTLIST_H 00024 00025 #include "selectpostlist.h" 00026 #include <vector> 00027 00028 typedef Xapian::PositionIterator::Internal PositionList; 00029 00040 class ExactPhrasePostList : public SelectPostList { 00041 std::vector<PostList*> terms; 00042 00043 PositionList ** poslists; 00044 00045 unsigned * order; 00046 00048 void start_position_list(unsigned i); 00049 00051 bool test_doc(); 00052 00053 public: 00054 ExactPhrasePostList(PostList *source_, 00055 const std::vector<PostList*>::const_iterator &terms_begin, 00056 const std::vector<PostList*>::const_iterator &terms_end); 00057 00058 ~ExactPhrasePostList(); 00059 00060 Xapian::termcount get_wdf() const; 00061 00062 Xapian::doccount get_termfreq_est() const; 00063 00064 TermFreqs get_termfreq_est_using_stats( 00065 const Xapian::Weight::Internal & stats) const; 00066 00067 std::string get_description() const; 00068 }; 00069 00070 #endif