我们将Solr 4.8用于我们的项目。
一位同事在同一个实例中创建了两个核心,用于从同一来源索引80GB文档XML。他说,一个核心最多可以包含50GB的索引数据,因此我们将80GB拆分为2个核心。这些核心具有相同的配置文件和架构。 对于索引,他将奇数文档放在第一个核心,甚至是第二个核心的文档。 对于搜索,他使用SolrJ API之一查询每个核心的所有文档。
由于我们只有一台服务器,因此不会为项目应用分发和复制。
我的问题:这个架构是Solr多核的正确用例吗?有人有什么建议吗?
答案 0 :(得分:3)
而不是存储两个索引并手动管理在不同核心上存储文档,您应该创建solrcloud,它会自动在分片之间分配数据。它还允许您在多台计算机上分发数据。
它还可以提高您的性能,查询会更容易,您也可以添加多个集合(使用不同的模式)。
答案 1 :(得分:2)
您应该使用Solr Cloud,其集合包含2个分片。看看https://cwiki.apache.org/confluence/display/solr/SolrCloud
答案 2 :(得分:1)
通常创建核心以区分不同集合实体格式的应用程序数据。 将核心数据从较低版本迁移到较高版本通常很有用。你可以在solr中拥有许多内核。假设您从两个不同的来源收集数据,例如来自X源和来自Y源的数据,我们通常会将它们存储在2个独立的核心中。
在您的情况下,由于内存限制很大,因此在同一组数据集上拥有2个内核是个好主意。通常,单个核心可以容纳大量内存。根据我的说法,它只涉及您的资源能力(硬件配置,如RAM和HDD)