Lucene(Solr / Zoie / Elasticsearch)设置的硬件要求

时间:2011-05-03 08:05:10

标签: performance lucene solr hardware

我正在开展一个项目,我们正在尝试引入搜索框架。我们即将开始开发,到目前为止我们只完成了一些工作。我们正在努力应对硬件估算。我不确定是否可以使用单个服务器设置满足我们的性能要求,或者我们是否需要使用复制或分布式解决方案。

以下是我们的主要要求

  • 搜索半结构化数据
    • 文档包含15个字段,所有字段都应该是可搜索的
    • 主要是数字ID
    • 日期
    • 姓名
  • 索引中的10多万个文档
  • 每分钟批量更新30-40次
  • < 100 ms响应时间使用多个布尔运算符搜索100 +查询pr minute

问题

1)在单服务器设置上获得此性能是否可行?

2)如果没有合适的设置来满足性能要求。

3)我们正在考虑Lucene之上的几个框架,其中包括Solr和Zoie。需要什么样的分布式架构来处理所需的负载和性能要求。

2 个答案:

答案 0 :(得分:3)

  

1)在单服务器设置上获得此性能是否可行?

是的,我想是的。但这是一种“边缘”(我希望你知道,我的意思) 你需要的是足够的RAM和CPU功率。 Finlay它取决于“大”文件的大小,如fulltexte左右,以及数据库的大小。

相比之下,我使用lucene和120万个文档,7个文件,大多数是短文件(日期,数字......),但也包括一个大文本字段(500-5000个字符)。这个mysql数据库的大小(由lucene索引)是1-2 GB。系统运行在具有4GB RAM的小型单CPU CPU主机上。全文搜索结果返回100-400ms。 如果您没有大文本字段,结果将更快返回。 (取决于搜索的类型 - >例如facettet搜索) 例如:在char(255)Filed上进行facetet搜索,返回< 70ms

可能对于您的配置,具有大量内存(> 32GB)和> 8个内核的非可视化硬件将非常有用。

  

每分钟批量更新30-40次

这意味着每分钟30-40个新文件吗?那没问题! 每分钟30-40次更新,包含大量新文档将更具挑战性。 另外,您应该定期优化您的索引(例如每晚)

  

3)我们正在考虑Lucene之上的几个框架,其中包括Solr和Zoie。

Solr作为tomcat应用程序运行。在这里,你必须定义例如RAM(看上面),它被分配给你的搜索引擎。 分割索引有不同的可能性(为了获得更高的性能或更快的更新),也可以进行群集。

答案 1 :(得分:0)

如果是" singleserver"对于此要求,您应该查看ElasticSearch之类的内容。因为它针对近实时更新进行了优化非常好。 使用Solr,您可以获得类似的性能,但与混合获取/更新请求完全相同Solr在单节点中存在问题。将它拆分为2个或更多节点 - 主/从您将获得与ElasticSearch类似的性能,但在单个节点上 - 没有。

请详细了解这一点 - http://blog.socialcast.com/realtime-search-solr-vs-elasticsearch/