Created
August 11, 2009 19:52
-
-
Save jrduncans/166075 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: ClassificationQuery.java | |
=================================================================== | |
--- ClassificationQuery.java (revision 8133) | |
+++ ClassificationQuery.java (revision 8130) | |
@@ -9,10 +9,10 @@ | |
import org.apache.lucene.index.TermDocs; | |
import org.apache.lucene.search.Explanation; | |
import org.apache.lucene.search.Query; | |
+import org.apache.lucene.search.QueryWeight; | |
import org.apache.lucene.search.Scorer; | |
import org.apache.lucene.search.Searcher; | |
import org.apache.lucene.search.Similarity; | |
-import org.apache.lucene.search.Weight; | |
/** | |
* Custom query for Classification to provide scoring based on classification | |
@@ -62,17 +62,21 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Scorer#doc() | |
+ * @see org.apache.lucene.search.Scorer#docID() | |
*/ | |
@Override | |
- public int doc() | |
+ public int docID() | |
{ | |
return this.termDocs.doc(); | |
} | |
/** | |
- * @see org.apache.lucene.search.Scorer#explain(int) | |
+ * Deprecated. Please use | |
+ * IndexSearcher.explain(org.apache.lucene.search.QueryWeight, int) or | |
+ * QueryWeight.explain(org.apache.lucene.index.IndexReader, int) | |
+ * instead. | |
*/ | |
+ @SuppressWarnings("deprecation") | |
@Override | |
public Explanation explain(final int arg0) throws IOException | |
{ | |
@@ -81,12 +85,12 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Scorer#next() | |
+ * @see org.apache.lucene.search.Scorer#nextDoc() | |
*/ | |
@Override | |
- public boolean next() throws IOException | |
+ public int nextDoc() throws IOException | |
{ | |
- return this.termDocs.next(); | |
+ return this.termDocs.next() ? docID() : NO_MORE_DOCS; | |
} | |
/** | |
@@ -96,7 +100,7 @@ | |
public float score() throws IOException | |
{ | |
final Document document = | |
- this.indexReader.document(this.doc(), new MapFieldSelector( | |
+ this.indexReader.document(this.docID(), new MapFieldSelector( | |
new String[] {"nodeid", "nodescore"})); | |
final String[] nodeIds = document.get("nodeid").split("\\s"); | |
@@ -126,19 +130,23 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Scorer#skipTo(int) | |
+ * @see org.apache.lucene.search.Scorer#advance(int) | |
*/ | |
@Override | |
- public boolean skipTo(final int target) throws IOException | |
+ public int advance(final int target) throws IOException | |
{ | |
- return this.termDocs.skipTo(target); | |
+ if (target == NO_MORE_DOCS) { | |
+ return NO_MORE_DOCS; | |
+ } | |
+ | |
+ return this.termDocs.skipTo(target) ? docID() : NO_MORE_DOCS; | |
} | |
} | |
/** | |
* Weight implementation for classification. | |
*/ | |
- private class ClassificationWeight implements Weight | |
+ private class ClassificationWeight extends QueryWeight | |
{ | |
/** Serial version UID. */ | |
private static final long serialVersionUID = -3433003550378502891L; | |
@@ -157,9 +165,9 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Weight#explain(org.apache.lucene.index.IndexReader, | |
- * int) | |
+ * @see QueryWeight#explain(IndexReader, int) | |
*/ | |
+ @Override | |
public Explanation explain(final IndexReader arg0, final int arg1) | |
throws IOException | |
{ | |
@@ -168,34 +176,41 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Weight#getQuery() | |
+ * @see org.apache.lucene.search.QueryWeight#getQuery() | |
*/ | |
+ @Override | |
public Query getQuery() | |
{ | |
return ClassificationQuery.this; | |
} | |
/** | |
- * @see org.apache.lucene.search.Weight#getValue() | |
+ * @see org.apache.lucene.search.QueryWeight#getValue() | |
*/ | |
+ @Override | |
public float getValue() | |
{ | |
// TODO what's this for? | |
return (float)1.0; | |
} | |
- | |
+ | |
/** | |
- * @see org.apache.lucene.search.Weight#normalize(float) | |
+ * @see org.apache.lucene.search.QueryWeight#normalize(float) | |
*/ | |
+ @Override | |
public void normalize(final float arg0) | |
{ | |
// TODO Auto-generated method stub | |
- } | |
+ } | |
/** | |
- * @see org.apache.lucene.search.Weight#scorer(org.apache.lucene.index.IndexReader) | |
+ * @see QueryWeight#scorer(IndexReader, boolean, boolean) | |
*/ | |
- public Scorer scorer(final IndexReader reader) throws IOException | |
+ @Override | |
+ public Scorer scorer( | |
+ final IndexReader reader, | |
+ final boolean scoreDocsInOrder, | |
+ final boolean topScorer) throws IOException | |
{ | |
final TermDocs termDocs = | |
reader.termDocs(new Term("nodeid", String | |
@@ -210,8 +225,9 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Weight#sumOfSquaredWeights() | |
+ * @see org.apache.lucene.search.QueryWeight#sumOfSquaredWeights() | |
*/ | |
+ @Override | |
public float sumOfSquaredWeights() throws IOException | |
{ | |
// TODO what's this for? | |
@@ -237,10 +253,11 @@ | |
} | |
/** | |
- * @see org.apache.lucene.search.Query#createWeight(org.apache.lucene.search.Searcher) | |
+ * @see Query#createQueryWeight(Searcher) | |
*/ | |
@Override | |
- protected Weight createWeight(final Searcher searcher) throws IOException | |
+ public QueryWeight createQueryWeight(final Searcher searcher) | |
+ throws IOException | |
{ | |
return new ClassificationWeight(searcher); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment