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

Solr 1.4企业级搜索服务器建议在核心副本上进行大量更新,然后交换主核心。 我正在按照以下步骤操作:

  • Create prep core:http:// localhost:8983 / solr / admin / cores?action = CREATE&name = prep&instanceDir = main
  • 执行索引更新,然后在prep核心上执行/优化。
  • 交换主核心和准备核心:http:// localhost:8983 / solr / admin / cores?action = SWAP&core = main&other = prep
  • 卸载prep核心:http:// localhost:8983 / solr / admin / cores?action = UNLOAD&core = prep
  • 我遇到的问题是,步骤1中创建的核心没有任何数据。 如果我要对所有内容和厨房水槽进行完整索引,那就没有问题了,但如果我只是想更新文档的(大)子集 - 那显然不起作用。

    (我可以合并核心,但我试图做的一部分是摆脱任何删除的文件,而不尝试列出它们。)

    有没有一些标志,我错过了CREATE行动? CoreAdmin的Solr Wiki页面对细节有点稀疏。

    可能的解决方案:复制

    solr-user上的某个人建议使用复制。 在这种情况下使用它(根据我的理解)需要以下步骤:

  • 根据MAIN内核的配置创建一个新的PREP内核
  • 将MAIN核心的配置更改为主控
  • 将PREP内核的配置更改为从属设备
  • 原因/等待同步?
  • 将PREP内核的配置更改为不再是从属设备
  • 执行索引更新,然后在PREP核心上执行/优化。
  • 交换PREP和MAIN核心
  • 更简单的基于复制的设置将是配置始终是主设备的永久PREP内核。 MAIN核心(在需要的任意数量的服务器上)然后可以是PREP核心的从属设备。 索引可能会在PREP核心上发生,尽可能快或必要时缓慢。

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

    我想出的另一个想法是(也涉及永久PREP核心):

  • 执行索引更新,然后在PREP核心上执行/优化。
  • 交换PREP和MAIN核心。
  • 重新执行索引更新,然后提交/优化现在的PREP核心。 它现在与MAIN核心(理论上)具有相同的数据,并且将在下一次索引操作中准备好。

  • 我创建了这个克隆操作的想法,它执行索引和配置数据的文件系统副本,然后创建一个新的。 有一些锁定问题,你必须有索引的文件系统访问权限,但它确实有效。 这确实给你一个很好的副本,你可以使用配置文件。

    我越想它,你可以创建一个新的核心,然后做到这一点:

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

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

    链接地址: http://www.djcxy.com/p/67031.html

    上一篇: How do I create a solr core with the data from an existing one?

    下一篇: What actions are permitted in an Audio Output Unit's input callback