01: package org.contineo.core.searchengine.util;
02:
03: import org.apache.lucene.search.Similarity;
04:
05: /**
06: * Similarity class for lucene searcher classes.
07: * Created on 14.01.2005
08: *
09: * @author Michael Scholz
10: */
11: public class SquareSimilarity extends Similarity {
12:
13: private static final long serialVersionUID = 1L;
14:
15: public SquareSimilarity() {
16: }
17:
18: public float lengthNorm(String fieldName, int numTerms) {
19: return (float) (1.0D / Math.sqrt(Math.sqrt(numTerms)));
20: }
21:
22: public float queryNorm(float sumOfSquaredWeights) {
23: return (float) (1.0D / Math.sqrt(sumOfSquaredWeights));
24: }
25:
26: public float tf(float freq) {
27: return (float) (Math.sqrt(freq));
28: }
29:
30: public float sloppyFreq(int distance) {
31: return 1.0F / (float) (distance + 1);
32: }
33:
34: public float idf(int docFreq, int numDocs) {
35: return (float) (Math.sqrt(Math.log((double) numDocs
36: / (double) (docFreq + 1)) + 1.0D));
37: }
38:
39: public float coord(int overlap, int maxOverlap) {
40: return (float) overlap / (float) maxOverlap;
41: }
42: }
|