2013-07-24 49 views
0

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

所以例如

说我要存储两种类型的记录 客户这将具有以下字段 名称地址KIDS

和存储 名称地址型号尺寸

因此,尽管记录有一些共同之处,他们有不同的东西可以共存于同一个Lucene数据库中。我希望避免拥有所有字段的通用记录,因为进入此应用程序的数据量会很大,我不想浪费太多空间。将我的程序移动到与SOLR后端接口是否有助于我的情况。

在此先感谢

回答

2

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

+0

确定这是很好的知道。使用Lucene API将我的代码驱动到SOLR设置有多困难。 – TheCodeNovice

+0

这将需要一定的努力。从.Net你可以使用SolrNet库,这是非常好的和可定制的,或者Http或Streaming API。无论哪种情况,我都建议转向Java版本的Lucene,因为Lucene.Net远远落后。最新的Lucene版本要快得多,索引尺寸更小。 – lexk

0

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

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

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

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

相关问题