lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eugene <echot...@gmail.com>
Subject Help on Similarity
Date Mon, 06 Mar 2006 16:27:11 GMT
Hi,

I tried implementing my own Similarity and setting it in 
IndexWriter.setSimilarity(new CosSimilarity()).

But, there's something weird, it doesn't seem to call the methods in my 
Similarity. For example, when I set the idf to return 0.0f the 
Similarity still gives me a score > 0.0f.

How do I correctly set the Similarity? I'm quite new to this, some links 
to implementing Similarity will also be useful.

Thanks.

--
Eugene

Here's the code for my CosSimilarity:

import org.apache.lucene.search.Similarity;

public class CosSimilarity extends Similarity
{
   public float lengthNorm(String fieldName, int numTerms) {
     return 1.0f;
   }

   public float queryNorm(float sumOfSquaredWeights) {
     return (float)(1.0 / Math.sqrt(sumOfSquaredWeights));
   }

   public float tf(float freq) {
     return (float)(1 + Math.log(1 + freq));
   }

   public float sloppyFreq(int distance) {
     return 1.0f / (distance + 1);
   }

   public float idf(int docFreq, int numDocs) {
float f = (float)(Math.log((double)numDocs/(double)(docFreq+1) + 1.0));
     System.out.println("CosSimilarity.idf>" + f);
     return 0.0f;
   }

   public float coord(int overlap, int maxOverlap) {
     return overlap / (float)maxOverlap;
   }

}

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message