在什么条件下我可以使用solr核心

时间:2013-12-19 09:08:50

标签: database apache solr

我正在使用solr版本3.0.1,我即将更改为solr 4.6.0。 通常我只使用solr而不定义核心(我认为solr 3.0.1还没有核心)。 现在我想将我的solr升级到版本4.6.0,它有一些新功能。 所以我有3个问题:

  1. 究竟什么是solr core?
  2. 什么时候应该使用solr core?
  3. 每个solr核心是否像(关系型)数据库中的表一样?也就是说,我可以在不同的核心中保存不同类型的数据吗?
  4. 提前致谢。

2 个答案:

答案 0 :(得分:3)

核心基本上是具有给定模式的索引,并且将包含一组文档。

您应该为不同的文档集合使用不同的核心,但这并不意味着您应该将不同类型的文档存储在不同的索引中。

一些例子:

  • 您可以将不同语言的相同文档存储在不同的核心上,并根据配置的语言选择核心;
  • 您可以将不同类型的文档存储在不同的核心中,以便将它们按物理分开组织;
  • 但与此同时,您可以在同一索引上存储不同的文档,并通过字段值区分它们;

这实际上取决于你的用例。

答案 1 :(得分:0)

你必须事先考虑一下你要对你的Solr索引执行什么类型的查询。然后,您可以相应地放置核心或多个核心的模式。

例如,如果您在关系数据库上执行一些JOIN查询,那么SOLR索引中的大量文档将不会非常有效(如果可能的话),因为它是NoSQL世界(此处读作:非关系)。在这种情况下,您可能需要将数据从多个数据库表复制到一个核心模式中。

正如弗朗西斯科已经提到的那样,物理核心被表示为一个独立的实体,它有自己的架构,配置和索引数据。

多核设置的一个注意事项:在同一容器实例下配置的所有核心将共享相同的JVM。这意味着您应该小心存储在这些核心上的数据量。 Lucene是Solr内部的索引引擎,它具有非常简洁的快速(de)压缩算法(版本4.x),因此磁盘可以保留更长时间,但是JVM堆是值得关注的。

与Solr管理UI相结合的内核的好处是:

core reload after schema / solrconfig changes
core hot swap (if you have a live core serving queries you can hot swap it with a new core with same data and some modifications)
core index optimization
core renaming