我使用的NSF数据的格式是txt。现在,我已经为这些数据建立了索引,可以发送查询并获得几个结果。但是如何在选定的字段中搜索某些内容(例如,标题)?因为所有这些NSF数据都是纯txt文件。我不认为Lucene能够识别文件的哪个部分是“标题”或其他东西。我是不是应该先把txt文件转换成XML文件(用标签告诉Lucene哪个部分是"title")?Lucene能做到吗?我不知道如何将txt文件分成几个字段。有没有人能给我一些建议?非常感谢!
顺便说一句,每个txt文件看起来都是这样的:-begin-- Title:线粒体DNA和历史人口学类型:获奖日期:1991年8月1日编号: 9000006摘要: asdajsfhsjdfhsjngfdjnguwiehfrwiuefnjdnfsd end
发布于 2014-01-23 08:03:42
你必须把文本分成几个部分。您可以使用生成的字符串为文本的每个部分创建一个字段,即标题。
使用如下字段创建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
https://stackoverflow.com/questions/21295842
复制相似问题