Lucene索引是否包含不同类型的文档

时间:2013-07-24 16:44:13

标签: c# solr lucene.net

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

示例

说我想存储两种类型的记录 客户将具有以下字段 NAME ADDRESS有孩子

并存储 NAME ADDRESS TYPE SIZE

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

提前致谢

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

你需要记住有真正独特的ID(UUID,或类似TYPE-PREFIX_YOUR-ID>等),并且有1个可用于过滤的公共字段。

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

如果你这样做(1个核心中的2种数据类型),取决于你的用例。