Java Lucene能否将任意对象附加(或至少跟踪)到文档?
我正在密切关注Lucene 3.6的应用程序 我能够在Java Lucene能否将任意对象附加(或至少跟踪)到文档?,java,lucene,Java,Lucene,我正在密切关注Lucene 3.6的应用程序 我能够在文档对象上创建和执行搜索,但我想找回我用来创建文档的原始对象。不幸的是,Lucene似乎正在序列化/反序列化文档,因此我无法在它们之间创建查找映射 如何在Lucene的文档s和我的对象s之间保持关系?有没有一种Lucene首选的方法可以做到这一点? 我应该注意到教程对我来说不是现成的,我必须在创建/附加文档后添加对IndexWriter.commit()的调用,并且我还必须调用IndexWriterConfig.setMaxBufferedD
文档
对象上创建和执行搜索,但我想找回我用来创建文档
的原始对象。不幸的是,Lucene似乎正在序列化/反序列化文档,因此我无法在它们之间创建查找映射
如何在Lucene的文档
s和我的对象
s之间保持关系?有没有一种Lucene首选的方法可以做到这一点?
我应该注意到教程对我来说不是现成的,我必须在创建/附加文档后添加对IndexWriter.commit()
的调用,并且我还必须调用IndexWriterConfig.setMaxBufferedDocs()
和IndexWriterConfig.setRAMBufferSizeMB()
使用大数字停止Lucene查看硬盘。首先,您需要对原始对象的唯一引用。如果对象是数据库中的行,那么可以使用主键,假设它是唯一的ID
其次,在创建可搜索的文档时,只需添加如下字段
doc.add(new Field("id", object.getId().toString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
以后可以从找到的文档中检索此字段,并根据id检索原始文档(数据库条目)
如果您可能有不同的文档类型,例如数据库条目和PDF,只需以相同的方式保存文档类型,即可以不同的方式处理不同的类型。您需要以某种方式唯一地标记可搜索对象,例如通过id,然后再引用该id。只需将该id保存为您的文档
s中的非索引id即可。一个字段
是否适用于此?是的。在我的一个应用程序中,我添加了一个id字段作为doc.add(新字段(“id”,object.getId().toString(),field.Store.YES,field.Index.NOT_analysis))代码>我实际上选择了字段.索引.否
;-)是否要将您的评论升级为解决方案?