我刚刚写了一个 custom CharTokenizer
,我想在我的 Solr 服务器中使用它。
在 Solr3 中,我可以在 create 方法中扩展TokenizerFactory
并返回 my ,但在 Solr4 中不存在。CharTokenizer
TokenizerFactory
所以,我注意到我应该替换TokenizerFactory
为TokenFilterFactory
,但在这种情况下,我不能返回我的 custom CharTokenizer
,因为参数不匹配。
我还搜索了一些文档,但看起来没有什么真正有用的。
那么,我怎样才能让它工作呢?
例子:
public class MyCustomTokenizer extends CharTokenizer {
char anotherSpace = 24;
public MyCustomTokenizer(Version matchVersion, Reader in) {
super(matchVersion, in);
}
protected boolean isTokenChar(int c) {
return !Character.isWhitespace(c) && isToken((char) c);
}
private boolean isToken(char c) {
if (c == anotherSpace || c == ',') {
return false;
}
return true;
}
}
public class MyCustomTokenizerFactory extends TokenFilterFactory {
public void init(Map<String, String> args) {
super.init(args);
assureMatchVersion();
}
@Override
public TokenStream create(TokenStream input) {
// sh*t happens here
return new MyCustomTokenizer(luceneMatchVersion, input);
}
}
提前致谢。