Lucene SolrNet/Solr-更新与覆盖文档
我正在使用SolrNet与Solr索引进行交互。我有一个守护程序应用程序通过添加/更新/删除写入Solr索引。但是,对于SolrNet,具有相同唯一密钥的Add会覆盖(替换)现有文档,而不是附加(组合)它们 在Lucene中,我可以这样做,其中term是文档键的Lucene术语。我在SolrNet怎么做?我知道在一个方法中一个接一个地添加字段的(痛苦的)方法,但肯定有更简单的方法Lucene SolrNet/Solr-更新与覆盖文档,lucene,solr,solrnet,Lucene,Solr,Solrnet,我正在使用SolrNet与Solr索引进行交互。我有一个守护程序应用程序通过添加/更新/删除写入Solr索引。但是,对于SolrNet,具有相同唯一密钥的Add会覆盖(替换)现有文档,而不是附加(组合)它们 在Lucene中,我可以这样做,其中term是文档键的Lucene术语。我在SolrNet怎么做?我知道在一个方法中一个接一个地添加字段的(痛苦的)方法,但肯定有更简单的方法 //where term is a Lucene term for the document key if (obj
//where term is a Lucene term for the document key
if (objFacetsSearcher.DocFreq(term) > 0)
{
objWriter.UpdateDocument(term, doc);
updated++;
}
else
{
objWriter.AddDocument(doc);
added++;
}
据我所知,Solr还不支持这一点。请参阅。可能与@Mauricio重复-不要认为这与我的问题有关。它完全相同。在Solr中,您不能更新单个字段。实际上,唯一的方法是读回文档、追加内容并写回?这似乎是一种对健康有害的I/O。你采取什么方法来解决这个问题?我正在考虑使用Lucene直接写入Solr索引。需要注意的任何缺点?@mikOS根据环境限制,最明显的方法是再次从源系统读取整个文档。如果这不是一个可行的选择,那么可以考虑在连接器中实现缓存功能(或者作为文档处理的一部分),或者将输入字段存储在索引中,并从SoR读取文档以填充DELTA之外的任何字段。您认为使用Lucene直接写入索引怎么样?有什么需要注意的潜在问题吗?