On 1/9/07, David <[EMAIL PROTECTED]> wrote:
Hi all:
    How can I index float type term in Lucene so that we can search in a
range? I learned that it is possible to convert float to sortable string,
but I don't know how to do it.

It's easiest/fastest in binary.  The IEEE floating point format if
interpreted as a signed integer is already very close to sorting
correctly.  If you already know how to index an integer, then do this:
get the float bits as an int, and if the high bit is set, flip all
other bits.
That's how Solr does it:
http://svn.apache.org/viewvc/incubator/solr/trunk/src/java/org/apache/solr/util/NumberUtils.java?view=markup

 public static String float2sortableStr(float val) {
   int f = Float.floatToRawIntBits(val);
   if (f<0) f ^= 0x7fffffff;
   return int2sortableStr(f);
 }


-Yonik
http://incubator.apache.org/solr Solr, the open-source Lucene search server

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to