Guest User

Untitled

a guest
May 21st, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1. package simulator;
  2.  
  3. import org.apache.lucene.index.FieldInvertState;
  4. import org.apache.lucene.search.similarities.TFIDFSimilarity;
  5. import org.apache.lucene.util.BytesRef;
  6.  
  7. /**
  8.  * Created by b.fpa on 20/05/15.
  9.  */
  10. public class CustomTFIDFSimilarity extends TFIDFSimilarity {
  11.  
  12.     protected boolean discountOverlaps = false;
  13.  
  14.  
  15.     public boolean getDiscountOverlaps() {
  16.         return discountOverlaps;
  17.     }
  18.     @Override
  19.     public float coord(int i, int i1) {
  20.         return 1;
  21.     }
  22.  
  23.     @Override
  24.     public float queryNorm(float v) {
  25.         return (float) (1/Math.pow((double)v,2));
  26.     }
  27.  
  28.     @Override
  29.     public float tf(float v) {
  30.         return 1; //(float)Math.sqrt(v);
  31.     }
  32.  
  33.     @Override
  34.     public float idf(long docFreq, long numDocs) {
  35.  
  36.         return (float)(Math.log(numDocs/(double)(docFreq+1)) + 1.0);
  37.         //return 1;
  38.     }
  39.  
  40.     @Override
  41.     public float lengthNorm(FieldInvertState state) {
  42.         final int numTerms;
  43.         if (discountOverlaps)
  44.             numTerms = state.getLength() - state.getNumOverlap();
  45.         else
  46.             numTerms = state.getLength();
  47.         //return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));
  48.         return (float) (1.0 / numTerms);
  49.     }
  50.  
  51.     @Override
  52.     public float decodeNormValue(long l) {
  53.         return 1;
  54.     }
  55.  
  56.     @Override
  57.     public long encodeNormValue(float v) {
  58.         return 1;
  59.     }
  60.  
  61.     @Override
  62.     public float sloppyFreq(int i) {
  63.         return 1;
  64.     }
  65.  
  66.     @Override
  67.     public float scorePayload(int i, int i1, int i2, BytesRef bytesRef) {
  68.         return 1;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment