我正在做一个需要支持这些关键要求的搜索引擎的项目:
salable:索引行将以百万计并且不断增长。
实时更新:将有不断的记录插入和更新。理想情况下,新插入或修改的记录可立即搜索到。会有删除,但很少。
分面搜索。
相关结果:高位搜索结果必须比结果集中的后续结果更具相关性。
控制结果:可以控制搜索结果。例如:仅在特定日期之前返回记录。
我以前在想Solr,但因为要求#2而受到关注。我不确定Solr是否可以为一个非常大的数据库处理#2。
有关Solr或其他开源搜索引擎的任何建议或指示。
提前致谢!
问候。
答案 0 :(得分:3)
尽管Solr为您的#2提供了Solr NRT(近乎实时),但ES确实是从头开始构建的,以提供实时搜索功能。它也建立在Lucene之上(就像Solr一样)所以在Solr,Lucene和ES之间有一个很好的交叉功能。
尽管Solr最近在这方面取得了一些进展,但可扩展性也是ES的基础问题。尽管如此,foursquare,github等依赖于ES,所以我打赌你至少在未来一段时间内会很好;)