Jskad/source/org/thdl/lucene/NumberPadder.java

32 lines
959 B
Java

package org.thdl.lucene;
import org.apache.lucene.analysis.*;
import java.text.DecimalFormat;
import java.io.*;
public class NumberPadder extends TokenFilter {
public static final String NUMBER_TYPE = "Number";
private static final DecimalFormat formatter = new DecimalFormat("0000000000");
public static String pad(int n) {
return formatter.format(n);
}
public NumberPadder(TokenStream input) {
super(input);
}
public Token next() throws IOException {
Token token = input.next();
if (token == null)
return null;
try {
int i = Integer.parseInt(token.termText());
Token replace = new Token(pad(i), token.startOffset(), token.endOffset(), NUMBER_TYPE);
replace.setPositionIncrement(token.getPositionIncrement());
return replace;
} catch (NumberFormatException nfe) {
return token;
}
}
}