在Solr中更新时丢失索引数据

时间:2018-08-17 13:23:49

标签: java spring solr

This is in schema.xml

<field name="body" type="text_general" indexed="true" stored="false"/>

This is the Java code

SolrInputDocument sdoc = new SolrInputDocument();
sdoc.addField("id",id);
Map<String, Object> fieldModifier = new HashMap<>();
fieldModifier.put("set", tags);
sdoc.addField("tags",fieldModifier);
solrClient().add(collectionName,sdoc);
solrClient().close();

我正在尝试在solr中更新文档。文档已更新,但是更新后body字段的索引数据丢失了(我可以使用body以外的任何其他字段进行搜索)。 如何更新而不丢失索引数据?

1 个答案:

答案 0 :(得分:0)

根据Atomic Updates上的文档:

  

原子更新文档的核心功能要求,必须将架构中的所有字段配置为存储(stored =“ true”)或docValues(docValues =“ true”),但目的地字段必须配置如storage =“ false”。

您确定您的正文字段已存储或docValues为true吗?这样做的原因是,Solr在内部为整个文档重新编制了索引,因此丢失了无法恢复原始数据的那些字段。