java - 如何使用 Lucene Analyzer 标记字符串?

标签 java lucene tokenize analyzer

有没有一种简单的方法可以使用 Lucene 的 Analyzer 的任何子类来解析/标记 String

类似:

String to_be_parsed = "car window seven";
Analyzer analyzer = new StandardAnalyzer(...);
List<String> tokenized_string = analyzer.analyze(to_be_parsed);

最佳答案

根据上面的答案,这稍作修改以与 Lucene 4.0 一起使用。

public final class LuceneUtil {

  private LuceneUtil() {}

  public static List<String> tokenizeString(Analyzer analyzer, String string) {
    List<String> result = new ArrayList<String>();
    try {
      TokenStream stream  = analyzer.tokenStream(null, new StringReader(string));
      stream.reset();
      while (stream.incrementToken()) {
        result.add(stream.getAttribute(CharTermAttribute.class).toString());
      }
    } catch (IOException e) {
      // not thrown b/c we're using a string reader...
      throw new RuntimeException(e);
    }
    return result;
  }

}

关于java - 如何使用 Lucene Analyzer 标记字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6334692/

相关文章:

python - 如何在 Twitter 数据的 Pandas 数据框上应用 NLTK word_tokenize 库?

java - 并发文件处理

java - Hibernate:插入ManyToMany,在关系表中生成ID

java - 如何通过 HtmlUnit 设置或延长自动点击提交按钮 (HtmlSubmitInput) 的超时?

Java 标记化 : Treat Anything Separated by an Underscore as One Word

python - 标记信号的最快方法?

Java注解属性限制

java - Spark LuceneRDD - 它是如何工作的

c# - 实现 SOLR.Net 和 LUCENE.Net

java - 使用 Cloudant Client Search API 不会返回所有预期结果