解决方案 »

  1.   

    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的时候都会把+ | 之类的给直接过滤掉。
      

  2.   

    StandardAnalyzer 标准的分词器不行啊, 所以说让你用第三方的分词器。 
      

  3.   

    能否推荐一个,谢谢!主要用于中文分词,实际使用的是SmartChineseAnalyzer
      

  4.   

    能否推荐一个,谢谢!主要用于中文分词,实际使用的是SmartChineseAnalyzer用这个吧ikanalyzer, 支持扩展词库, 我有个demo你可以下载参考下。
    http://download.csdn.net/detail/whos2002110/7688007
      

  5.   

    ikanalyzer+1功能还是比较强大的。你如果像保留c++这个特殊词的话,设置一个词库就好了