cutting 2004/09/22 11:18:27 Modified: src/java/org/apache/lucene/search Similarity.java TermScorer.java Log: Inline decodeNorm() in TermQuery to make searches faster in Java implementations, like GCJ, where simple methods are not inlined. Revision Changes Path 1.14 +7 -0 jakarta-lucene/src/java/org/apache/lucene/search/Similarity.java Index: Similarity.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/search/Similarity.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Similarity.java 15 Aug 2004 11:37:36 -0000 1.13 +++ Similarity.java 22 Sep 2004 18:18:27 -0000 1.14 @@ -102,6 +102,13 @@ return NORM_TABLE[b & 0xFF]; } + /** Returns a table for decoding normalization bytes. + * @see #encodeNorm(float) + */ + public static float[] getNormDecoder() { + return NORM_TABLE; + } + /** Computes the normalization value for a field given the total number of * terms contained in a field. These values, together with field boosts, are * stored in an index and multipled into scores for hits on each field by the 1.14 +2 -1 jakarta-lucene/src/java/org/apache/lucene/search/TermScorer.java Index: TermScorer.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/search/TermScorer.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- TermScorer.java 22 Sep 2004 17:56:00 -0000 1.13 +++ TermScorer.java 22 Sep 2004 18:18:27 -0000 1.14 @@ -62,6 +62,7 @@ protected boolean score(HitCollector c, int end) throws IOException { Similarity similarity = getSimilarity(); // cache sim in local + float[] normDecoder = similarity.getNormDecoder(); while (doc < end) { // for docs in window int f = freqs[pointer]; float score = // compute tf(f)*weight @@ -69,7 +70,7 @@ ? scoreCache[f] // cache hit : similarity.tf(f)*weightValue; // cache miss - score *= Similarity.decodeNorm(norms[doc]); // normalize for field + score *= normDecoder[norms[doc] & 0xFF]; // normalize for field c.collect(doc, score); // collect score
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]