solr - 如何更新solr索引?

标签 solr

当用户创建文档时,我将日期添加到 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/

相关文章:

ruby-on-rails - Solr(太阳黑子)在非关键字搜索上的查询时间提升

java - SOLR 每个目标排队的最大请求数超过 HttpDestination + TIMED_WAITING 3000

mysql - 在 Solr(或其他分面搜索引擎)中搜索/导航,正确的方法是什么?

java - Solr 触发器优化并检查 Java 代码的进度

java - solrj 无法提升结果

ruby-on-rails - 如果 sunspot-solr 不可用,则构建故障保护

solr - Hadoop 创建索引并将其 Add() 到分布式 SOLR...这可能吗?我应该使用 Nutch 吗? ..Cloudera?

java - 需要 SOLR 和 PHP 帮助

java - SOLR - PathHierarchyTokenizerFactory Facet 查询

java - 如何让 Solr 8.11 在启用 FIPS 的环境中运行