在内存中运行Solr?

Jim*_*nic 14 solr

一天晚上,我在当地一家酒吧喝了一品脱,并与我旁边的小伙子进行了一次谈话.事实证明,他不仅是一名开发人员,而且还经常使用Solr.当我们谈论Solr是多么棒的时候,他提到了一些我从未弄清楚的东西.他说,"让Solr真正发挥作用的方法就是让它在记忆中运行."

唉,我没有得到他的名字,尽管谷歌搜索答案,我从来没有真正找到任何具体的东西.你觉得他的意思是什么?

bco*_*lan 11

对于任何想要加速测试的人来说:

如果测试索引具有单独的核心,则可以将directoryFactory属性更改solrconfig.xml为:

<directoryFactory name="DirectoryFactory" class="solr.RAMDirectoryFactory"/>

毋庸置疑,将任何生产数据仅保留在内存中并不是一个好主意.


Ami*_*far 1

在内存中运行 SOLR 确实没有意义。SOLR 旨在成为一个网络服务器,客户端可以使用 RESTless api 进行查询。您可以设置复制来补偿高流量。SOLR 包装了 Lucene。如果你想在内存中运行 SOLR,那么你基本上就是在内存中运行 Lucene。所以我建议启动一个 Lucene 实例并将磁盘放在内存中。我很想知道其他人的想法,但在内存中运行 SOLR 确实不是预期用途。Lucene 中有一个在内存中实现的目录,称为RAMDirectory

不久前也有一个关于运行 SOLR 嵌入式模式的类似问题,但过了一段时间 Apache 就弃用了嵌入式服务器的东西,因为这确实是 Lucene 的用途。

  • 与 MySql 相同的方式可以将其表和索引存储在内存中。作为服务器与存储数据的位置无关。 (4认同)
  • 在某种程度上它会让你的测试运行得更快 (2认同)