我需要扩展当前应用程序的功能。在这样做时,我希望存储一组不同的记录,这些记录与一些现有文档重叠,但并不完整,并引入一些新字段。单个Lucene索引可以包含两种类型的记录吗?
示例
说我想存储两种类型的记录 客户将具有以下字段 NAME ADDRESS有孩子
并存储 NAME ADDRESS TYPE SIZE
因此,虽然记录有一些共同点,但它们可以在同一个Lucene数据库中共存。我希望避免使用具有所有字段的通用记录,因为进入此应用程序的数据量将很多,我不想浪费那么多空间。将我的程序移动到与SOLR后端的接口会帮助我的情况。
提前致谢
答案 0 :(得分:3)
Lucene没有架构,所以你通常可以这样做。我不建议将客户和商店混在一起 - 你如何在结果集中将它们分开?您会将客户和商店整合到单个数据库表中吗? Solr可以在很多方面为您提供帮助。例如,您可以将不同类型的数据放入不同的核心,从而具有不同的模式和清晰的分离。单个SOLR服务器上可以共存多个核心。 SOLR还可以为您解决许多其他问题。例如。数据分区(分片),通过添加多个节点进行负载平衡,故障转移等
答案 1 :(得分:0)
将不同的数据类型放入1个Solr核心非常简单。
你需要记住有真正独特的ID(UUID,或类似TYPE-PREFIX_YOUR-ID>等),并且有1个可用于过滤的公共字段。
如果您在solrconfig中指定了2个处理程序,您可能甚至没有注意到您正在处理具有2种数据类型的核心(此部分是可选的)。
如果你这样做(1个核心中的2种数据类型),取决于你的用例。