/src/3rdparty/clucene/src/CLucene/search/PhraseScorer.h
https://bitbucket.org/ultra_iter/qt-vtl · C Header · 65 lines · 43 code · 12 blank · 10 comment · 0 complexity · 8e5927d53b46560bf0424c46c32bd920 MD5 · raw file
- /*------------------------------------------------------------------------------
- * Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
- *
- * Distributable under the terms of either the Apache License (Version 2.0) or
- * the GNU Lesser General Public License, as specified in the COPYING file.
- ------------------------------------------------------------------------------*/
- #ifndef _lucene_search_PhraseScorer_
- #define _lucene_search_PhraseScorer_
- #if defined(_LUCENE_PRAGMA_ONCE)
- # pragma once
- #endif
- #include "PhraseQueue.h"
- #include "PhrasePositions.h"
- #include "Scorer.h"
- #include "Similarity.h"
- CL_NS_DEF(search)
- class PhraseScorer: public Scorer {
- private:
- Weight* weight;
- qreal freq;
- bool firstTime;
- bool more;
- protected:
- uint8_t* norms;
- qreal value;
- PhraseQueue* pq; //is used to order the list point to by first and last
- PhrasePositions* first; //Points to the first in the list of PhrasePositions
- PhrasePositions* last; //Points to the last in the list of PhrasePositions
- public:
- //Constructor
- PhraseScorer(Weight* weight, CL_NS(index)::TermPositions** tps,
- int32_t* positions, Similarity* similarity, uint8_t* norms);
- virtual ~PhraseScorer();
- int32_t doc() const { return first->doc; }
- bool next();
- qreal score();
- bool skipTo(int32_t target);
- void explain(int32_t doc, Explanation* ret);
- TCHAR* toString();
- protected:
- virtual qreal phraseFreq() =0;
- //Transfers the PhrasePositions from the PhraseQueue pq to
- //the PhrasePositions list with first as its first element
- void pqToList();
- //Moves first to the end of the list
- void firstToLast();
- private:
- bool doNext();
- void init();
- void sort();
- };
- CL_NS_END
- #endif