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

使用存储的copyField目标的Solr原子更新

呼延钱明
2023-03-14

我希望将Solr原子更新与一些存储的copyfield目标字段结合使用,这不是推荐的组合--因此我希望了解其中的风险。

原子更新的Solr文档说(我的重点是):

原子式更新文档的核心功能要求架构中的所有字段都必须配置为stored(stored=“true”)或docValues(docValues=“true”),但 目标字段除外,后者必须配置为stored=“false”。原子更新应用于现有存储的字段值所表示的文档。copyField目标字段中的所有数据必须仅来源于copyField源。

但是,我要将一些copyfield目标设置为stored=true,以便高亮显示对它们正确工作(例如,请参见本问题)。

我需要原子更新,以便一个(不相关的)字段可以被另一个进程修改,而不会丢失由我的进程索引的数据。

文档警告说:

我不知道“来自索引程序的一些信息和来自copyfield的一些信息”是什么意思,具体来说。

存储一个copyfield目标,同时原子式地更新其他字段是否安全,反之亦然?我已经通过Solr管理控制台对此进行了尝试,并且还没有能够演示任何问题,但是想要弄清楚什么情况会触发问题。

共有1个答案

廉展鹏
2023-03-14

这意味着复制字段将从源字段添加一个额外的值,有效地在复制字段中创建一个多值字段,如果它没有被定义为多值字段,那么该字段将不是正确的类型,并且无法对其进行进一步的更新,直到您重新索引所有内容。我目前正努力解决这个问题,因为我们需要这些值作为copyField响应的一部分返回,这意味着它需要存储,但是如果我们对不同的字段进行原子更新,这样做就会破坏文档的结构。

 类似资料:
  • Solr4提供了对索引中现有文档进行原子(部分)更新的功能。即。可以匹配文档ID并替换一个字段的内容,或者向多值字段添加更多条目:http://wiki.apache.org/solr/atomicupdates 原子更新可以从DataImportHandler(DIH)完成吗?

  • 尝试从方法名生成查询时出错。然而,我可以使用其他已经在那里的。...等等。知道为什么吗? 实体 存储库 应用程序.属性 方法关键字:https://docs.spring.io/spring-data/solr/docs/1.2.0.rc1/reference/htmlsingle/

  • 要么我一整天都精疲力尽了,不能正常思考,要么这是不可能的,但我想一个原子,它引用一个无限延迟的seq,并使用当前seq的 我的程序挂起有明显的原因,因为在交换前尝试检查以前和新的seq相等。相等性检查基本上从不终止 以前,我的惰性seq是在中工作的,但是在REPL上,由于实现了返回的seq,我的REPL被挂起 无论如何,使用仍然失败

  • 我是azure云服务平台的新手。今天我遇到了Azure提供的Key-Vault存储服务。它具有存储应用程序级密钥和设置的能力。它具有增强的数据保护功能,是安全可靠的。 但我不清楚的是,要连接到Key-Vault,我需要存储在应用程序配置中的Key-Vault的工件。 如果是这样的话,当有人在密钥值上掉线时,他不会连接到我的密钥库并读取我的所有密钥。 如果我应该加密我的本地密钥存储库设置,那么我可以

  • 我使用Luke在更新后查看索引,似乎solr再次复制了整个文档,并使用了新的字段和我的原子字段更改。 如果相同的文档更新1mio会发生什么。几次?真的有1mio。同一份文件的副本? 我查看了solr源代码,没有办法指定自己的值,因为它总是被替换为新的时间戳。由于性能的原因,加载旧文档以删除旧版本不是一个选项。

  • 我已经通过了lucene索引机制。我有一些疑问,我找不到一个直截了当的答案,我仍然对我在几篇参考文献中的阅读感到困惑。 考虑使用Lucene对数据库表进行索引。 假设该表有10列,其中很少有caseid、modifiedby、modifiedtime、casename、legalname等。。。 现在,如果我创建一个索引的情况下,那么在搜索是不是可以搜索的基础上修改字段??? 假设我在2列case