是否有可能将新字段更新为现有文档? 例如: 存在具有多个字段的文档,例如,更新现有文档的新字段
ID=99999
Field1:text
Field2:text
该文件已经在索引中,现在我要插入一个新的领域,以本文档,而无需将旧数据:
ID=99999
Field3:text
现在,旧的文件将被删除,新的带有ID的文件将被创建。所以,如果我现在要查找的ID 99999的结果将是:
ID=99999
Field3:text
我读这在Solr的维基
如何更新现有文档的某一特定领域?
我想更新文档中的特定字段,这可能吗?我只需要为一个特定的文档索引一个字段。我必须为此编制所有文件的索引吗?
不,只是一个文件。假设你有一个CMS并且你编辑了一个文档。只需使用整个文档的add solr语句(不仅仅是一个字段),您将需要重新索引此文档。
在Lucene中更新文档的操作实际上是一个删除,然后是添加。由于Lucene中没有这种“只更新字段”的语义,因此您需要添加完整的文档。
那么有没有解决方案呢?此功能是否会在更高版本中实现(我目前使用3.6.0)。作为一种解决方法,我考虑编写脚本或应用程序,它将收集现有字段,添加新字段并更新整个文档。但我认为这会受到影响。你还有其他建议吗?
问候
非常感谢!你的第一个答案就是我想到的。你认为这会受到很大的影响吗?对于答案2:你能给我一个这个更新日志的官方链接吗?我无法找到此功能。尼斯链接:-) – 2012-08-03 09:27:22
取决于你进行更改的频率,索引的大小,文档的大小,你使用的硬件。由于任何变化都会导致IO,CPU等成本的增加,你将不得不试验一下你的情况。对于第二部分,我无法在日志中找到它:http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?view=markup但是Yonik Seeley确认在http:// grokbase.com/t/lucene/solr-user/127bc3svh7/updating-documents – Fuxi 2012-08-03 10:12:40
我的索引包含大约1,8百万个文档,每个文档都有大约10-30个多值字段。问题是,如果由于高性能损失而无法使用应用程序,开发应用程序将花费太多时间。建议将版本更改为4.0 alpha版本吗?你有什么经验吗?非常感谢:-) – 2012-08-03 10:28:45