ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪种适合哪种用途? [英] ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?

查看:461
本文介绍了ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪种适合哪种用途?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在寻找其他的搜索方法,而不是有一个巨大的SQL查询。
我最近看到弹性搜索,并使用 whoosh (搜索引擎的Python实现)。

I'm currently looking at other search methods rather than having a huge SQL query. I saw elasticsearch recently and played with whoosh (a Python implementation of a search engine).

你可以给出选择的理由?

Can you give reasons for your choice(s)?

推荐答案

作为ElasticSearch的创始人,也许我可以给你一些推理,为什么我继续创造它在第一地点:)。

As the creator of ElasticSearch, maybe I can give you some reasoning on why I went ahead and created it in the first place :).

使用纯Lucene是很具挑战性的。有许多事情需要照顾,如果你希望它真的很好,以及它的一个库,所以没有分布式支持,它只是一个嵌入式的Java库,你需要维护。

Using pure Lucene is challenging. There are many things that you need to take care for if you want it to really perform well, and also, its a library, so no distributed support, its just an embedded Java library that you need to maintain.

在Lucene可用性方面,回溯(近6年),我创建了Compass。其目的是简化使用Lucene,使日常的Lucene更简单。我一次又一次地遇到了需要分发Compass的能力。通过与GigaSpaces,Coherence和Terracotta等数据网格解决方案的集成,我开始从Compass内部开始工作,但还不够。

In terms of Lucene usability, way back when (almost 6 years now), I created Compass. Its aim was to simplify using Lucene and make everyday Lucene simpler. What I came across time and time again is the requirement to be able to have Compass distributed. I started to work on it from within Compass, by integrating with data grid solutions like GigaSpaces, Coherence and Terracotta, but its not enough.

其核心是一个分布式的Lucene解决方案需要分片。此外,随着HTTP和JSON作为无处不在的API的进步,这意味着可以轻松使用许多不同语言的不同系统的解决方案。

At its core, a distributed Lucene solution needs to be sharded. Also, with the advancement of HTTP and JSON as ubiquitous APIs, it means that a solution that many different systems with different languages can easily be used.

这就是为什么我去前进并创建了ElasticSearch。它具有非常先进的分布式模型,可以自然地说JSON,并且公开了许多高级搜索功能,这些功能都通过JSON DSL无缝表达。

This is why I went ahead and created ElasticSearch. It has a very advanced distributed model, speaks JSON natively, and exposes many advanced search features, all seamlessly expressed through JSON DSL.

Solr也是一种解决方案,用于公开索引/通过HTTP搜索服务器,但我会认为, ElasticSearch 提供了非常优越的分布式模型和易用性(虽然目前缺乏一些搜索功能,但不是很长时间,无论如何,该计划是将所有的功能集成到ElasticSearch中)。当然,我有偏见,因为我创建了ElasticSearch,所以你可能需要检查自己。

Solr is also a solution for exposing an indexing/search server over HTTP, but I would argue that ElasticSearch provides a much superior distributed model and ease of use (though currently lacking on some of the search features, but not for long, and in any case, the plan is to get all Compass features into ElasticSearch). Of course, I am biased, since I created ElasticSearch, so you might need to check for yourself.

至于Sphinx,我没有使用它,所以我可以' t评论。我可以提及的是这个线索在Sphinx论坛,我认为证明ElasticSearch的优秀分布式模型。

As for Sphinx, I have not used it, so I can't comment. What I can refer you is to this thread at Sphinx forum which I think proves the superior distributed model of ElasticSearch.

当然,ElasticSearch还有更多的功能,然后被分发。它实际上是与云一起构建的。您可以查看网站上的功能列表。

Of course, ElasticSearch has many more features then just being distributed. It is actually built with cloud in mind. You can check the feature list on the site.

这篇关于ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪种适合哪种用途?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆