gpt4 book ai didi

solr - 如何使用现有数据创建 solr 核心?

转载 作者:行者123 更新时间:2023-12-03 23:57:54 27 4
gpt4 key购买 nike

Solr 1.4 Enterprise Search Server 建议对核心副本进行大量更新,然后将其换成主核心。我正在按照以下步骤操作:

  • 创建准备核心:http://localhost:8983/solr/admin/cores?action=CREATE&name=prep&instanceDir=main
  • 执行索引更新,然后在准备核心上提交/优化。
  • 交换主要和准备核心:http://localhost:8983/solr/admin/cores?action=SWAP&core=main&other=prep
  • 卸载准备核心:http://localhost:8983/solr/admin/cores?action=UNLOAD&core=prep

  • 我遇到的问题是,在步骤 1 中创建的核心中没有任何数据。如果我要对所有内容和厨房水槽进行完整索引,那很好,但是如果我只想更新文档的(大)子集 - 这显然行不通。

    (我可以合并核心,但我尝试做的部分工作是删除任何已删除的文档,而无需尝试列出它们。)

    是否有一些我缺少的 CREATE 操作标志? Solr Wiki page for CoreAdmin在细节上有点稀疏。

    可能的解决方案:复制

    solr-user 上有人建议使用复制。要在这种情况下使用它(据我了解)需要以下步骤:
  • 根据 MA​​IN 核心的配置创建一个新的 PREP 核心
  • 将 MAIN 核心的配置更改为 master
  • 将 PREP 内核的配置更改为从设备
  • 导致/等待同步?
  • 将 PREP 核心的配置更改为不再是从属
  • 执行索引更新,然后在 PREP 核心上提交/优化。
  • 交换 PREP 和 MAIN 内核

  • 一个更简单的基于复制的设置是配置一个永久的 PREP 核心,它始终是主控。 MAIN 核心(根据需要在尽可能多的服务器上)然后可以成为 PREP 核心的从属。索引可以根据需要在 PREP 核心上快速或慢速发生。

    可能的解决方案:永久 PREP 核心和双重更新

    我想出的另一个想法是(也涉及永久的 PREP 核心):
  • 执行索引更新,然后在 PREP 核心上提交/优化。
  • 交换 PREP 和 MAIN 核心。
  • 重新执行索引更新,然后提交/优化现在的 PREP 核心。它现在拥有与 MAIN 核心相同的数据(理论上),并且将在附近,为下一次索引操作做好准备。
  • 最佳答案

    我创建了这种克隆操作的想法,它对索引和配置数据进行文件系统复制,然后创建一个新的。存在一些锁定问题,您必须拥有对索引的文件系统访问权限,但它确实有效。这确实为您提供了一个很好的副本,您可以在配置文件中乱搞。

    我想得越多,您就可以创建一个新的核心,然后执行以下操作:

    从主命令强制在从服务器上获取索引:http://slave_host:port/solr/replication?command=fetchindex
    可以传递额外的属性 'masterUrl' 或其他属性,如 'compression'(或标签中指定的任何其他参数)以从主服务器进行一次性复制。这避免了在从站中对主站进行硬编码的需要。

    并从生产中填充新的,然后应用您的更新,然后交换回来!

    关于solr - 如何使用现有数据创建 solr 核心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2502393/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com