首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用现有数据创建solr核心?

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

Stack Overflow用户
提问于 2010-03-23 18:03:57
回答 1查看 12.1K关注 0票数 15

Solr1.4EnterpriseSearchServer建议对核心副本进行大规模更新,然后将其替换为主核心。我正在遵循以下步骤:

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

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

(我可以合并内核,但我要做的部分工作是删除任何已删除的文档,而不试图列出它们的列表。)

创建操作中是否有我缺少的标志?用于CoreAdmin的Solr页面在细节上有点稀疏。

可能的解决方案:复制

solr用户上有人建议使用复制。在这个场景中使用它(据我理解)需要以下步骤:

  1. 根据主核的配置创建一个新的准备核心
  2. 将主核的配置更改为主程序
  3. 将PREP核心的配置更改为从服务器。
  4. 导致/等待同步?
  5. 将PREP核心的配置更改为不再是从服务器。
  6. 执行索引更新,然后在PREP核心上提交/优化。
  7. 交换准备和主核

一个更简单的基于复制的设置将是配置一个永久的准备核心,它始终是主程序。主核心(根据需要在多个服务器上)可以是PREP核心的从属程序。索引可以在PREP核心上进行,速度可以是最快的,也可以是慢的。

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

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

  1. 执行索引更新,然后在PREP核心上提交/优化。
  2. 交换准备和主要核心。
  3. 重新执行索引更新,然后提交/优化现在的PREP核心。它现在拥有与主核相同的数据(理论上),并将出现,为下一个索引操作做好准备。
EN

回答 1

Stack Overflow用户

发布于 2010-03-25 17:55:44

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

我越多地思考这个问题,你就可以创建一个新的核心,然后这样做:

从主命令中强制从从命令中获取数据:主机:端口/solr/replication?命令=fetchindex可以传递额外的属性'masterUrl‘或其他属性,如“压缩”(或标签中指定的任何其他参数),以便从主服务器进行一次复制。这就省去了在从中硬编码主程序的需要。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2502393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档