Initial import into git.
[galago.git] / cpp / galago / include / BinnedFeatureIndex.hpp
blobcfa42ce12f248f8f6328616b5ca256695f813a55
2 //
3 // BinnedFeatureIndex
4 //
5 // 5 January 2007 -- tds
6 //
8 #ifndef GALAGO_BINNEDFEATUREINDEX_HPP
9 #define GALAGO_BINNEDFEATUREINDEX_HPP
11 #include "indri/Parameters.hpp"
12 #include "BinOrderedBinnedIterator.hpp"
13 #include "Stemmer.hpp"
14 #include "Normalizer.hpp"
15 #include "Query.hpp"
16 #include "Stopper.hpp"
17 #include "IndexReader.hpp"
19 #define BINNEDFEATUREINDEX_MAX_TERM_LENGTH (512)
20 #define BINNEDFEATUREINDEX_VOCAB_GROUP (16)
21 #define BINNEDFEATUREINDEX_BLOCK_SIZE (1<<16)
23 class BinnedFeatureIndex {
24 private:
25 IndexReader _reader;
27 Stemmer* stemmer;
28 Stopper* stopper;
29 Normalizer normalizer;
31 UINT64 _maximumDocumentCount;
32 bool _requiresWeighting;
34 void _build_stemmer();
35 void _build_stopper();
37 public:
38 static const int blockSize = BINNEDFEATUREINDEX_BLOCK_SIZE;
39 static const int vocabGroup = BINNEDFEATUREINDEX_VOCAB_GROUP;
40 static const char maxTermLength = BINNEDFEATUREINDEX_MAX_TERM_LENGTH;
42 public:
43 BinnedFeatureIndex();
44 ~BinnedFeatureIndex();
46 void openRead( const std::string& indexPath );
47 void close();
48 BinOrderedBinnedIterator* getTerm( const std::string& term ) const;
49 QueryTerm processTerm( const QueryTerm& term ) const;
50 UINT64 maximumDocumentCount() const;
51 bool requiresWeighting() const;
54 #endif // GALAGO_BINNEDFEATUREINDEX_HPP