当用户创建文档时,我将日期添加到 solr 索引中。每次数据更改(例如编辑或删除)时,是否必须重新索引整个数据?
在这种情况下,重新索引意味着什么?当我做
$this->indexData(array(
'id' => $pid,
'title' => $data['titel']
));
为每个文档做
$solr->addDocuments
,它是否只是覆盖了已经存在的数据?我试图在添加/删除/编辑时重新索引整个索引,但是在我删除某个字段后,它的信息似乎仍然在索引中。
有任何想法吗?
最佳答案
当您将文档索引到 solr 时,它将覆盖具有相同 <uniqueKey/>
的任何现有文档。这通常是 id。所以是的,它会覆盖现有数据。
当您想更改文档的单个字段时,您必须重新索引整个文档,因为 solr 不支持仅更新字段。因此,当您删除一个字段时,您将不得不重新索引没有该字段的文档。这将覆盖现有数据。不要忘记发送 commit
在末尾。
使用 Solr 4,您可以更新文档的单个字段。见 Atomic_Updates
关于solr - 如何更新solr索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269941/