pylucene 3.5.0-3
[pylucene.git] / java / org / apache / pylucene / search / PythonSimilarity.java
1 /* ====================================================================
2  *   Licensed under the Apache License, Version 2.0 (the "License");
3  *   you may not use this file except in compliance with the License.
4  *   You may obtain a copy of the License at
5  *
6  *       http://www.apache.org/licenses/LICENSE-2.0
7  *
8  *   Unless required by applicable law or agreed to in writing, software
9  *   distributed under the License is distributed on an "AS IS" BASIS,
10  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  *   See the License for the specific language governing permissions and
12  *   limitations under the License.
13  * ====================================================================
14  */
15
16 package org.apache.pylucene.search;
17
18 import org.apache.lucene.search.Similarity;
19 import org.apache.lucene.search.Searcher;
20 import org.apache.lucene.search.Explanation.IDFExplanation;
21 import org.apache.lucene.index.FieldInvertState;
22 import org.apache.lucene.index.Term;
23 import java.util.Collection;
24
25
26 public class PythonSimilarity extends Similarity {
27
28     private long pythonObject;
29
30     public PythonSimilarity()
31     {
32     }
33
34     public void pythonExtension(long pythonObject)
35     {
36         this.pythonObject = pythonObject;
37     }
38     public long pythonExtension()
39     {
40         return this.pythonObject;
41     }
42
43     public void finalize()
44         throws Throwable
45     {
46         pythonDecRef();
47     }
48
49     public IDFExplanation idfExplain(final Collection<Term> terms,
50                                      final Searcher searcher)
51     {
52         return new IDFExplanation() {
53             public float getIdf()
54             {
55                 return idfTerms(terms, searcher);
56             }
57
58             public String explain()
59             {
60                 return null;
61             }
62         };
63     }
64
65     public native void pythonDecRef();
66
67     public native float idfTerms(Collection terms, Searcher searcher);
68
69     public native float coord(int overlap, int maxOverlap);
70     public native float idf(int docFreq, int numDocs);
71     public native float computeNorm(String fieldName, FieldInvertState state);
72     public native float queryNorm(float sumOfSquaredWeights);
73     public native float sloppyFreq(int distance);
74     public native float tf(float freq);
75     public native float scorePayload(int docId, String fieldName,
76                                      int start, int end, byte [] payload,
77                                      int offset, int length);
78     
79 }