lucene怎么对包含特殊字符的字段做处理:如c++ lucene特殊字符 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private static final String[] stopWords = { "and", "or" }; private static Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_47, buildCharArraySetFromArry(stopWords)); public static void analyzer() throws IOException { String text = "c++ linux中文class,java or and | + c++,射雕英雄传"; Reader reader = new StringReader(text); TokenStream ts = analyzer.tokenStream(null, reader); ts.reset(); StringBuilder sb = new StringBuilder(); while (ts.incrementToken()) { CharTermAttribute ct = ts.getAttribute(CharTermAttribute.class); sb.append(ct.toString()).append("|"); } System.out.println("result = " + sb); }不管怎么做,做index的时候都会把+ | 之类的给直接过滤掉。 StandardAnalyzer 标准的分词器不行啊, 所以说让你用第三方的分词器。 能否推荐一个,谢谢!主要用于中文分词,实际使用的是SmartChineseAnalyzer 能否推荐一个,谢谢!主要用于中文分词,实际使用的是SmartChineseAnalyzer用这个吧ikanalyzer, 支持扩展词库, 我有个demo你可以下载参考下。http://download.csdn.net/detail/whos2002110/7688007 ikanalyzer+1功能还是比较强大的。你如果像保留c++这个特殊词的话,设置一个词库就好了 oracle 插入数据问题 学习第一天遇到问题…… 关于析构函数 如何将这个转化成Java类或者其他解决方案 包内文件路径问题 关于一个异常处理的不能再简单的问题 关于servlet! 线程打断问题 JBuilder8安装完成后不能运行,没反应... r.getString("aa")取出null后的处理问题... java中有表示枚举类型的语句吗 关于构造顺序的一个小问题!
String text = "c++ linux中文class,java or and | + c++,射雕英雄传";
Reader reader = new StringReader(text);
TokenStream ts = analyzer.tokenStream(null, reader);
ts.reset();
StringBuilder sb = new StringBuilder();
while (ts.incrementToken()) {
CharTermAttribute ct = ts.getAttribute(CharTermAttribute.class);
sb.append(ct.toString()).append("|");
}
System.out.println("result = " + sb);
}不管怎么做,做index的时候都会把+ | 之类的给直接过滤掉。
http://download.csdn.net/detail/whos2002110/7688007