From 922dfa2102f120b7e9668a0b05eb8896a2c53d00 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Fri, 21 Jul 2006 14:30:55 +0000 Subject: [PATCH] Fix AR-776 Search not ordering numbers of mixed sign git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3368 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/search/impl/lucene/analysis/DoubleTokenFilter.java | 4 ++-- .../repo/search/impl/lucene/analysis/FloatTokenFilter.java | 3 ++- .../search/impl/lucene/analysis/IntegerTokenFilter.java | 3 ++- .../repo/search/impl/lucene/analysis/LongTokenFilter.java | 3 ++- .../search/impl/lucene/analysis/NumericEncodingTest.java | 6 ++++++ 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/source/java/org/alfresco/repo/search/impl/lucene/analysis/DoubleTokenFilter.java b/source/java/org/alfresco/repo/search/impl/lucene/analysis/DoubleTokenFilter.java index 462df15554..7965dd2dc6 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/analysis/DoubleTokenFilter.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/analysis/DoubleTokenFilter.java @@ -21,7 +21,7 @@ import java.io.Reader; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.Tokenizer; -import org.apache.lucene.analysis.standard.StandardTokenizer; +import org.apache.lucene.analysis.WhitespaceTokenizer; /** * Simple tokeniser for doubles. @@ -35,7 +35,7 @@ public class DoubleTokenFilter extends Tokenizer public DoubleTokenFilter(Reader in) { super(in); - baseTokeniser = new StandardTokenizer(in); + baseTokeniser = new WhitespaceTokenizer(in); } /* diff --git a/source/java/org/alfresco/repo/search/impl/lucene/analysis/FloatTokenFilter.java b/source/java/org/alfresco/repo/search/impl/lucene/analysis/FloatTokenFilter.java index c591ef2724..31d2e907f3 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/analysis/FloatTokenFilter.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/analysis/FloatTokenFilter.java @@ -21,6 +21,7 @@ import java.io.Reader; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.Tokenizer; +import org.apache.lucene.analysis.WhitespaceTokenizer; import org.apache.lucene.analysis.standard.StandardTokenizer; /** @@ -35,7 +36,7 @@ public class FloatTokenFilter extends Tokenizer public FloatTokenFilter(Reader in) { super(in); - baseTokeniser = new StandardTokenizer(in); + baseTokeniser = new WhitespaceTokenizer(in); } /* diff --git a/source/java/org/alfresco/repo/search/impl/lucene/analysis/IntegerTokenFilter.java b/source/java/org/alfresco/repo/search/impl/lucene/analysis/IntegerTokenFilter.java index c0a481b640..f1bf3213af 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/analysis/IntegerTokenFilter.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/analysis/IntegerTokenFilter.java @@ -21,6 +21,7 @@ import java.io.Reader; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.Tokenizer; +import org.apache.lucene.analysis.WhitespaceTokenizer; import org.apache.lucene.analysis.standard.StandardTokenizer; /** @@ -35,7 +36,7 @@ public class IntegerTokenFilter extends Tokenizer public IntegerTokenFilter(Reader in) { super(in); - baseTokeniser = new StandardTokenizer(in); + baseTokeniser = new WhitespaceTokenizer(in); } /* diff --git a/source/java/org/alfresco/repo/search/impl/lucene/analysis/LongTokenFilter.java b/source/java/org/alfresco/repo/search/impl/lucene/analysis/LongTokenFilter.java index 25be1eb13c..5f11883170 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/analysis/LongTokenFilter.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/analysis/LongTokenFilter.java @@ -22,6 +22,7 @@ import java.io.Reader; import org.alfresco.error.AlfrescoRuntimeException; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.Tokenizer; +import org.apache.lucene.analysis.WhitespaceTokenizer; import org.apache.lucene.analysis.standard.StandardTokenizer; /** @@ -36,7 +37,7 @@ public class LongTokenFilter extends Tokenizer public LongTokenFilter(Reader in) { super(in); - baseTokeniser = new StandardTokenizer(in); + baseTokeniser = new WhitespaceTokenizer(in); } /* diff --git a/source/java/org/alfresco/repo/search/impl/lucene/analysis/NumericEncodingTest.java b/source/java/org/alfresco/repo/search/impl/lucene/analysis/NumericEncodingTest.java index 3b4cc73d58..7382cd4711 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/analysis/NumericEncodingTest.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/analysis/NumericEncodingTest.java @@ -181,6 +181,12 @@ public class NumericEncodingTest extends TestCase assertEquals("ffefffffffffffff", NumericEncoder.encode(Double.MAX_VALUE)); assertEquals("fff0000000000000", NumericEncoder.encode(Double.POSITIVE_INFINITY)); assertEquals("fff8000000000000", NumericEncoder.encode(Double.NaN)); + + assertTrue( NumericEncoder.encode(-0.9).compareTo(NumericEncoder.encode(0.88)) < 0); + assertTrue( NumericEncoder.encode(-0.9).compareTo(NumericEncoder.encode(0.91)) < 0); + assertTrue( NumericEncoder.encode(0.88).compareTo(NumericEncoder.encode(0.91)) < 0); + + } }