当前位置: 首页 > 知识库问答 >
问题:

文件的部分更新

钱振
2023-03-14

我们要求当前在SOLR中索引的文档可能需要定期进行部分更新。更新可以是。添加新字段B。更新现有字段的内容。我们模式中的一些字段是存储的,其他的没有。

Solr4确实允许这样做,但必须存储所有字段。见Update a new field to existing document和http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/

问题:1。有没有办法让SOLR做到这一点。我们在过去尝试过SOLR JOINs,但它并不适合我们所有的用例。

目前,我们通过在需要索引时重新索引受影响的文档来进行管理

共有1个答案

慕容安易
2023-03-14

Solr有存储字段的限制,这是正确的。底层的lucene总是要求删除旧文档并索引新文档。事实上,lucene段是一次性写入的,它从不回去修改现有的段,因此它只将文档标记为已删除,并在合并发生时将其真正删除。

lucene上的搜索服务器试图通过公开一个能够删除旧文档并自动重新索引新文档的endpoint来解决这个问题,但是必须有一种方法以某种方式检索旧文档。只有在存储所有字段的情况下,Solr才能做到这一点。

Elasticsearch围绕它工作,默认情况下将源文档存储在一个名为_source的特殊字段中。那正是你在索引时第一时间发送到搜索引擎的文档。顺便说一下,这是使elasticsearch与NoSQL数据库类似的特性之一。elasticsearch Update API允许您以两种方式更新文档:

  1. 发送将与现有文档合并的新部分文档(仍删除旧文档并为合并结果编制索引
  2. 对现有文档执行脚本并在删除旧文档后对结果进行索引

这两个选项都依赖于_source字段的存在。存储源可以被禁用,如果您禁用它,您当然会失去这个伟大的功能。

 类似资料:
  • 问题内容: 在C#.net中,有一个规定,要有两个不同的类文件,并使用关键字partial关键字使它们成为一个类。这有助于将[UI]和逻辑分开。当然,我们可以有两个类来实现这一类,一个用于UI,另一个用于逻辑。可以在Java中实现吗? 问题答案: 源文件分割 不能。Java源代码不能拆分为多个文件。 摘自Wikipedia文章 Java和C Sharp的比较 Sun Microsystems Ja

  • 所以我有这些大文件(6GB+),我需要在32位计算机上解密。我以前使用的一般过程是读取内存中的整个文件,然后将其传递给解密函数,然后将其全部写回一个文件。由于内存限制,这实际上不起作用。我尝试将文件分成几部分传递给decrypt函数,但在将文件发送给decrypt函数之前,它似乎会在分解文件的边界附近搞乱。 以下是我的解密函数/我尝试部分解密。

  • 但是,我还没有想好如何使用solrj API来实现这一点。 有没有人知道用Solrj是否可能?还是solrj没有跟上这个功能的速度? 更新:正如我在邮件列表中所描述的(参见这里的回复),我发现在solrj api中,SolrInputField的值可以是一个映射--它不一定必须是一个简单的标量值。如果它是一个映射,solrj会向字段的xml元素添加一个额外的属性。例如,以下代码: 在这个例子中,我

  • 问题内容: 我当前的工作环境是Rails 2.3.8 (导致公司未迁移到Rails 3的各种原因)。我正在尝试通过AJAX调用更新多模型表单的元素- 这个想法是根据用户选择或填写其他字段的方式替换某些下拉菜单。 我以前已经设法通过使用基于非表单的部分来实现此目的- 我现在的问题是,当部分基于form_for和fields_for时,会重现select下拉列表的AJAX更新。 对不起,下面的文字-我

  • 我有一个名为“ParkPhotos.txt”的文件,里面有一些公园的12个名字,例如“AmericanMosao_photo.jpg”。我想把“_photo.jpg”改成“_info.txt”,但我很挣扎。在代码中,我能够读取该文件,但我不确定如何替换它。

  • 我对PhpStorm很陌生。我加入了一个团队,开始开发一个新功能,但是发现我的文件的一部分现在没有了PHP通常显示的不同颜色。它有一个背景,我把它去掉了,但是文本是白色的(而不是橙色、黄色等)。).我不知道我做了什么,也不知道为什么只有文件的一部分是这样的,而其他部分是好的,但是任何帮助都是值得感谢的。 该文件是PHP,其中包含一些HTML。除了这一部分,其他所有内容都有正确的背景和正确的颜色。