c# - 2013年度最佳Lucene搜索平台 : Solr or ElasticSearch?

标签 c# solr lucene full-text-search elasticsearch

<分区>

我经营着一个招聘网站 (PostJobFree.com),里面有大约 100 万份简历。平均简历大小约为 4000 字节。 PostJobFree 使用 ASP.NET/C#/SQL Server 2008 R2 和 MS SQL 全文搜索。

通过阅读各种文章,我相信切换到 Apache Lucene 搜索将使搜索速度更快且更具可扩展性。但我还没有尝试过。

问题 1:在大约 1M 文档标记时从 MS SQL 全文搜索切换到 Apache Lucene 是否是正确的选择,或者我不会注意到搜索速度显着提高? 我预计我的数据库中可搜索文档的数量每月增长约 10%。

问题 2:最好的 Lucene 平台是什么:Solr 还是 ElasticSearch?

这是我目前的发现:

<强>1。谷歌搜索趋势 http://www.google.com/trends/explore#q=elasticsearch%20search%2C%20solr%20search%2C%20sphinx%20search%2C%20%22sql%20server%22%20%22full-text%20search%22&cmpt=q 截至目前(2013 年 4 月)

  • Solr 似乎是目前最流行的搜索平台, 但去年(2012 年 4 月)Solr 的受欢迎程度根本没有增长 – 2013 年 4 月)。
  • ElasticSearch 从 到 2010 年底,但仍然只有流行 Solr 的 40% 左右。
  • Sphinx 搜索在 2006 年至 2009 年越来越受欢迎,从 2009 年。现在它和 ElasticSearch 一样流行。
  • SQL Server 全文搜索在长期下降。

这些趋势是否与这些搜索平台的质量相关?

<强>2。过去的 StackOverflow 问题

StackOverflow 在 2010 年 2 月有搜索平台比较问题:ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?

其创建者 Shay Banon 的“ElasticSearch”答案在当时是最受欢迎的。

2012 年晚些时候提出了类似的问题:Solr vs. ElasticSearch

最受欢迎的答案再次支持 ElasticSearch。

<强>3。其他

Nick Zadrosny(同时运营 Solr 托管服务 websolr.com 和 ElasticSearch 托管服务 bonsai.io)在 2012 年 4 月成为 ElasticSearch 的支持者: https://news.ycombinator.com/item?id=3833735

这是 Nick 今天(2013 年 4 月)的回答:

Elasticsearch does tend to be a bit more beginner friendly compared to Solr. Elasticsearch has a nicer API and is definitely easier to set up and configure for a new application. That said, Solr still has some advantage in terms of maturity and robustness, and the learning curve isn't too unreasonable when you don't need to worry about production configuration. Beyond that, both share the same roots in Lucene, and offer similar functionality. Either should be equally appropriate for your needs.

我想知道“鲁棒性”到底是什么意思,这种鲁棒性的差异在未来几年会发生怎样的变化?

<强>4。渗透

ElasticSearch 具有 Percolation 功能,应该允许我通过立即交付来实现恢复搜索警报。 Solr 有这样的东西吗?

最佳答案

这是一个非常主观/本地化的问题,我会投出自己的一票来结束这样的问题,但无论如何我都会尝试一下答案,因为我在问题中被引用了。

Solr 总是有很多遗留接口(interface)和 API 需要支持,但它是众所周知的并且经过充分验证。 Elasticsearch 的全新开端带来了卓越的开发人员体验,尤其是对于初学者而言,但它在内部仍有成长和成熟的空间。

两者之间的决定是非常主观的。我目前的建议是:如果您有疑问,请从 Elasticsearch 开始。如果以后的情况需要切换,您在那里学到的概念将很好地转化为 Solr。

除此之外,评估生态系统的其余部分。例如针对您的特定编程语言的教程、文档和优质开源客户端的可用性和质量。或者托管服务提供商、顾问和商业支持契约(Contract)的可用性。

最终,我非常认为 Solr 和 Elasticsearch 都在朝着相同的目标努力,为相同的用户群而竞争,并将在相似的功能对等水平上趋于一致。

关于c# - 2013年度最佳Lucene搜索平台 : Solr or ElasticSearch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269820/

相关文章:

ElasticSearch/Lucene 查询字符串 — 选择 "field X exists"

java - Lucene 3.5.0 QueryParser 在以编程方式生成的查询中找不到任何结果

solr复制: what are 'master (searching)' and 'master (replicable)' fields

c# - 多对多自引用关系

c# - 如何在 EntityFramework Core 中使用部分类和部分 OnModelCreating 方法扩展 DbContext

c# - 创建新的 C# 文件时命名空间错误?

image - 存储图像以在 SOLR 搜索结果中显示

apache - 使用 apache solr 去除口音

C# 识别 XML 文件中的父子元素

filter - 使用 solr.StandardFilterFactory 从新服务器上的现有核心升级 schema.xml 中的过滤器