当前位置: 首页 > 面试题库 >

ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪种适合哪种用法?

牛昱
2023-03-14
问题内容

我目前正在寻找其他搜索方法,而不是拥有庞大的SQL查询。我最近看过Elasticsearch,并玩过whoosh(搜索引擎的Python实现)。

您能给出选择理由吗?


问题答案:

作为ElasticSearch的创建者,也许我可以为您提供一些理由,说明我为什么继续并首先创建它:)。

使用纯Lucene具有挑战性。如果要使其真正发挥出色,就需要注意很多事情,而且它是一个库,因此没有分布式支持,它只是您需要维护的嵌入式Java库。

就Lucene的可用性而言,我可以追溯到近6年的时间(我创建了Compass)。其目的是简化Lucene的使用并使日常Lucene变得更简单。我一次又一次遇到的问题是能够分发Compass的要求。我开始在Compass中通过与GigaSpaces,Coherence和Terracotta等数据网格解决方案集成来进行处理,但这还不够。

从本质上讲,需要分派分布式Lucene解决方案。此外,随着HTTP和JSON作为无处不在的API的发展,这意味着可以轻松使用具有不同语言的许多不同系统的解决方案。

这就是为什么我继续创建ElasticSearch的原因。它具有非常先进的分布式模型,以JSON原生语言,并公开了许多高级搜索功能,所有功能均通过JSON
DSL无缝表达。

Solr还是用于通过HTTP公开索引/搜索服务器的解决方案,但我认为ElasticSearch提供了一种非常出色的分布式模型,并且易于使用(尽管目前缺少某些搜索功能,但是这种功能并没有很长一段时间,在这种情况下,计划是将
Compass的
所有功能都放入ElasticSearch中。当然,自从我创建ElasticSearch以来,我一直抱有偏见,因此您可能需要自己检查一下。

至于Sphinx,我还没有使用过,所以我无法发表评论。我可以向您推荐的是Sphinx论坛上的该线程,我认为它证明了ElasticSearch的出色分布式模型

当然,ElasticSearch不仅具有分布式功能,还具有更多功能。它实际上是在考虑云的情况下构建的。您可以在网站上查看功能列表。



 类似资料:
  • 问题内容: 据我所知,Python中两个主要的HTML解析库是lxml和BeautifulSoup。我为正在从事的项目选择了BeautifulSoup,但是我选择它的原因并不多,除了找到更易于学习和理解的语法外。但是我看到很多人似乎都喜欢lxml,而且我听说lxml更快。 所以我想知道一个相对于另一个的优势是什么?我什么时候要使用lxml,什么时候可以使用BeautifulSoup更好?还有其他值

  • 问题内容: 我正计划开始一个新项目,并正在研究当前最新的Java Web框架。我决定围绕Guice构建我的应用程序,并可能使用非常轻量级的ORM,例如Squill / JEQUEL / JaQu或类似的东西,但是我不能决定Web框架。在如此轻巧的环境中,哪一个最合适?哪一个与Guice集成得最好? 问题答案: 我在11月开始为一个新项目进行编程时,已经在该主题上积累了一些经验。该项目现在处于后期。

  • 问题内容: 我在表中有一列。 我想知道哪种MySQL类型最适合本专栏。难道,或其他什么东西? 价格可以例如:,,(2个位数的小数点后,如在商店)。 请指教。 问题答案: DECIMAL是因为精确存储了十进制值。例如DECIMAL(10,2)非常适合价格不高于99999999,99的价格。MySQL文档参考

  • 问题内容: 由于这个问题很受欢迎,因此我认为对其进行更新很有用。 让我强调AviD对这个问题给出 的正确答案 : 您不应在Cookie中存储任何需要加密的数据。 而是在cookie中存储一个大小合适的(128位/ 16字节)随机密钥,并在cookie的密钥中标识要在服务器上保持安全的信息。 我正在寻找有关“最佳”加密cookie加密算法的信息。 我有以下要求: 它必须快速 加密和解密(几乎)每个请

  • 问题内容: 当我使用猫鼬时,我发现了两种在nodejs中创建新文档的方法。 首先 : 第二 有什么区别吗? 问题答案: 是的,主要区别在于您可以在保存之前进行计算,也可以对构建新模型时出现的信息做出反应。最常见的示例是在尝试保存模型之前确保模型有效。其他一些示例可能是在保存之前创建任何缺失的关系,需要基于其他属性即时计算的值以及需要存在但可能永远不会保存到数据库(异常交易)的模型。 因此,作为您可

  • 问题内容: 使用哪些IDE(“ GUI /编辑器”)进行Python编码? 问题答案: 或者,以纯文本格式:(也可以作为aa 屏幕截图获得) 缩略语: 我没有提到语法高亮之类的基础知识,因为我期望默认情况下这些。 这只是一份反映你的反馈和意见的清单,我不主张使用这些工具。当你继续发布答案时,我将不断更新此列表。 PS。你能帮我将上述编辑器的功能添加到列表中吗(例如自动完成,调试等)?