summaryrefslogtreecommitdiffstats
path: root/3rdparty/clucene/src/CLucene/search/PhraseScorer.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/clucene/src/CLucene/search/PhraseScorer.h')
-rw-r--r--3rdparty/clucene/src/CLucene/search/PhraseScorer.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/3rdparty/clucene/src/CLucene/search/PhraseScorer.h b/3rdparty/clucene/src/CLucene/search/PhraseScorer.h
new file mode 100644
index 000000000..89f7a1fbb
--- /dev/null
+++ b/3rdparty/clucene/src/CLucene/search/PhraseScorer.h
@@ -0,0 +1,65 @@
+/*------------------------------------------------------------------------------
+* 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