Solr用于重新索引大型文档语料库
我们正在寻找一些建议,围绕Solr系统地重新索引一个不断增长的文档集(现在有数千万,一年中有数亿),而不会使当前运行的索引失效.需要在定期基础上重新编制索引,因为:
>介绍新功能 当前索引会收到非常频繁的更新和添加,需要在几分钟内进行搜索.因此,在批量脱机中重新索引语料库的方法实际上不起作用,因为批次完成时,新文档将可用. 我们目前正在研究的方法是: >创建一个新的分片集群 我们很感激,如果人们可以确认或者在这些方法中的任何一个或所有方法中找到漏洞.一个比另一个更合适吗?还是我们完全脱了?先感谢您. 解决方法
这可能不适用于你们,但我会提出解决这个问题的方法.
我们的Solr设置目前是单核心.我们将来会添加更多内核,但绝大多数数据都写入单个内核. 考虑到这一点,分片并不适用于我们.我查看了分布式搜索 – 切割数据并在不同服务器上运行不同的切片.对我来说,这似乎太复杂了.它会使备份/恢复更加困难,并且在执行分布式搜索时最终会丢失某些功能. 我们最终采用的方法是一个非常简单的集群主/从设置. 每个集群由一个主数据库和两个负载平衡的solr从设备组成.所有新数据都写入主数据库,从站配置为每5分钟同步一次新数据.在正常情况下,这是一个非常好的设置.在主服务器上进行重新索引操作,并且在发生这种情况时,仍然可以从中读取从服务器. 当发生重大的重新索引操作时,我从负载均衡器中删除一个从站并关闭另一个从站的轮询.因此,面向Solr数据库的客户现在不与主服务器同步,而另一个正在更新.重新索引完成且离线从属数据库同步后,我将其添加回负载均衡器,从负载均衡器中删除其他从属数据库,然后重新配置它以与主站同步. 到目前为止,这一点非常有效.我们目前在我们的数据库中有大约500万个文档,这个数字在多个集群中的扩展性要高得多. 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Delphi:良好的模式/策略视图< - >模型同步
- Buy the Ticket
- HDU 5834 Magic boy Bi Luo with his excited tree (树形DP
- 分享 :大数据人才应如何挖掘与培养?
- vb.net中线程委托的简单实例
- perl – 错误:500无法连接到example.com:443(证书验证失败
- golang 栈的扩大和收缩
- Perl:如何将键/值对推送到hashref并仍然保留引用
- java-如何在Spring Data Repo中模仿List>之类的行为?
- perl $d = encode_utf8($r); $f = decode_json($d)