0

我正在尝试索引和存储文件内容(纯文本),但似乎使用这种方式是不可能的:

protected Document getDocument(File f) throws Exception {
  Document doc = new Document();
  Field contents = new Field("contents", new FileReader(f));
  Field filename = new Field("filename", f.getName(), Field.Store.YES, Field.Index.ANALYZED);
  doc.add(contents);
  return doc;
}

如何存储纯文本文件的内容(没有任何标签)?

4

2 回答 2

2

只需读取文件内容并使用另一个 Field 构造函数,例如

protected Document getDocument(File f) throws Exception {
  Document doc = new Document();
  Field contents = new Field("contents", new Scanner(f).useDelimiter("\\A").next(), Store.YES, Index.NO);  // you should actually close the scanner
  Field filename = new Field("filename", f.getName(), Store.YES, Index.ANALYZED);
  doc.add(contents);
  doc.add(filename);
  return doc;
}
于 2012-10-05T16:51:03.523 回答
1

看看 Apache Tika (http://tika.apache.org/)。他们有一个很好的库,可以从 HTML 和其他结构化文档中提取文本。这将有助于从 HTML 中提取文本。

至于存储在 lucene 索引中,根据您的需要,您可以在存储之前去掉标签。或者,您可以使用它创建一个分析器,以便在索引时标记标签。

于 2012-10-04T13:22:08.310 回答