[英]Lucene update field from document from index without loose information
我喜欢从我的索引中的文档中更新一个字段。 一个例子,我的文件:
id: 123 (For term)
xNum: 4568-456843
content (Field.Store.NO): my text from the file
现在我喜欢只更新 xNum 字段(没有新内容),而不会丢失该文档中的索引词。 内容来自文件,而不是数据库。 如果有可能做到这一点? 不知何故?
我使用 Lucene Core V.8.3
实际上 Lucene 索引字段没有更新。 即使您运行更新 function ,它也会删除索引记录然后添加新记录。 当您不加载以前的记录时,您只会将 xNum: 4568-456843 值添加到该记录。
int id = 123 ;
String idSearch = "Id";
Query searchQuery = new TermQuery(new Term(idSearch , String.valueOf(id)))
TopDocs result = searcher.search(searchQuery ,1);
for (ScoreDoc docTemp : result.scoreDocs) {
Document _doc = searcher.doc(docTemp.doc);
YourObject obj = fillFields(doc);
}
obj.xNum = 4568-456843;
Document updateDoc = createDoc(obj);
indexWriter.updateDocument(new Term(idSearch, String.valueOf(id)), updateDoc);
您可以尝试转换结果字段,然后更新您想要的属性并更新它,如示例中所示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.