使用Lucene,如何将TXT文件索引到不同的字段?

时间:2014-01-22 22:58:14

标签: java lucene

我正在使用格式为txt的NSF数据。现在我已将这些数据编入索引,并可以发送查询并获得多个结果。但是如何在选定的字段中搜索某些内容(例如标题)?因为所有这些NSF数据都是完全普通的txt文件。我不认为Lucene能够识别文件的哪个部分是“标题”或其他内容。我应该首先将txt文件传输到XML文件(标签告诉Lucene哪个部分是“标题”)? Lucene能做到吗?我不知道如何将txt文件拆分成几个字段。有人可以给我一些建议吗?非常感谢!

BTW,每个txt文件如下所示: - -开始 - - 标题:线粒体DNA和历史人口统计学 类型:奖励 日期:1991年8月1日 编号:9000006 摘要:asdajsfhsjdfhsjngfdjnguwiehfrwiuefnjdnfsd ---- ----结束

1 个答案:

答案 0 :(得分:0)

您必须将文本拆分为多个部分。您可以使用生成的字符串为文本的每个部分创建一个字段,即标题。

使用以下字段创建您的lucene文档:

Document doc = new Document();
doc.add(new Field("title", titleString, Field.Store.NO, Field.Index.TOKENIZED));
doc.add(new Field("abstract", abstractString, Field.Store.NO, Field.Index.TOKENIZED));

等等。索引文档后,您可以在标题中搜索:title:dna

更复杂的查询以及在查询中混合多个字段也是可能的:+title:dna +abstract:"some example text" -number:935353