繁体   English   中英

Lucene 从索引的文档中更新字段,没有松散的信息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM