0

我需要扩展我当前应用程序的功能。在这样做时,我希望存储一组不同的记录,这些记录与一些现有文档重叠但不完全重叠,并引入一些新字段。一个 Lucene 索引可以包含两种类型的记录吗?

所以例子

假设我想存储两种类型的记录客户,它们将具有以下字段 NAME ADDRESS HAS KIDS

并存储 NAME ADDRESS TYPE SIZE

因此,虽然这些记录有一些共同点,但它们有一些不同之处,它们可以共存于同一个 Lucene 数据库中。我希望避免使用包含所有字段的通用记录,因为进入此应用程序的数据量会很多,我不想浪费那么多空间。将我的程序移动到与 SOLR 后端接口有助于我的情况。

提前致谢

4

2 回答 2

3

Lucene 没有架构,因此您通常可以这样做。我不建议将客户和商店混在一起 - 你将如何在结果集中将它们分开?您会将客户和商店放在一个数据库表中吗?Solr 可以在很多方面为您提供帮助。例如,您可以将不同类型的数据放入不同的核心,从而具有不同的架构和清晰的分离。多个内核可以在单个 SOLR 服务器上共存。SOLR 还可以为您解决许多其他问题。例如数据分区(分片)、通过添加多个节点进行负载平衡、故障转移等。

于 2013-07-24T17:37:12.423 回答
0

将不同的数据类型放入 1 个 Solr 核心相当简单。

您需要记住拥有真正唯一的 id(UUID,或类似 TYPE-PREFIX_YOUR-ID> 的东西),并且有 1 个可用于过滤的通用类型字段。

如果您在 solrconfig 中指定 2 个处理程序,您甚至可能不会注意到您正在处理具有 2 种数据类型的内核(这部分是可选的)。

您是否应该这样做(1 个核心中的 2 种数据类型),取决于您的用例。

于 2013-07-24T20:41:24.370 回答