0

在我的一个应用程序中,我们需要索引大量数据(30GB)。我们正在使用 SOLR 来索引这些数据。我们的 schema.xml 中有 50 个字段。我正在索引来自不同数据库的数据。

但是在索引所有字段时,数据不可用。所以我们创建了多个核心并分别索引每个核心。

例如:- 使用 Core 0,我们使用单独的查询索引 5 个字段

从对偶中选择 Field1 ,Field2 ,Field3 ,Field4 ,Field5。

Field1 --- 跨核心的公共字段 Field2 --- 在这个核心中被索引的字段 Field3 - 在这个核心中被索引的字段 Field4 - 在这个核心中被索引的字段 Field5 - 在这个核心中被索引的字段

因此,除了上述 5 个字段之外,其余 core0 中的所有字段都将为空。

接下来为核心 1

核心 1 我们使用单独的查询索引 3 个字段

从对偶中选择 Field1 ,Field6 ,Field6。

Field1 --- 跨核心的公共字段 Field6 --- 在这个核心中被索引的字段 Field7 -- 在这个核心中被索引的字段

我们对所有核心使用通用的 schema.xml。

对于查询,我们编写了一个自定义请求处理程序,它分别查询每个核心,然后合并结果。此外,每个核心中的数据将每 3 小时刷新一次。我在 solr4.0 中尝试过部分更新功能,但是索引太费时间……没那么有用

他们有更好的方法/设计来处理这个问题吗?

谢谢,拉维

4

1 回答 1

0

您可以使用shards跨多个核心进行查询。您可以从任何代码中执行此操作。

例如;

solr/core1/select/?q=iPad&shards=localhost:8983/solr/core1,localhost:8983/solr/core0

您可以使用 "," in 传递任意数量的核心shards

于 2012-10-19T17:45:04.740 回答