6

Couden't找到與黑子(Solr)相關的任何比較問題到彈性搜索(Lucene) 在兩個搜索引擎上,pro和con會是什麼?彈性搜索與功能上的太陽黑子比較

我看到了其他VS問題,以便在比較2個寶石時獲得更好的內部,所以希望這可以讓新手們(如我)在兩個引擎中獲得更好的洞察力。我已經看過太陽黑子,但有一些問題。所以我搜索

VS

+0

Solr是Lucene之上的一個服務層。這取決於你想如何建築師。 – 2012-02-06 14:51:10

+1

更適合的比較問題是Solr vs ElasticSearch,或者Sunspot vs Tire。 – 2012-02-06 17:38:00

回答

8

我想你應該尋找Solr的彈性和搜索之間的比較。實際上,太陽黑子是基於Solr的,Solr和彈性搜索都基於Lucene。他們是兩個具有類似目標的不同項目,都建立在Lucene之上。

這裏有兩個比較:

ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?

http://www.findbestopensource.com/article-detail/solr-vs-elasticsearch

+0

好吧,我不知道他們都基於Lucene,與很多信息很好的鏈接非常感謝張貼。 – Rubytastic 2012-02-09 18:40:25

+0

不客氣!總是樂於幫助! – javanna 2012-02-09 18:43:06

10

我開始對需要全文搜索在Ruby中的一個項目工作,所以自然我使用Solr +黑子,但我不能讓它工作。這是一個痛苦,只是讓他們連接,然後試圖找出文檔是否索引正確,找出運行時類路徑,以便我可以添加額外的分析器/標記器類,編輯config.xml/schema.xml等。Solr numDocs清楚說它收到並索引它們,但我無法獲得任何查詢結果。幾天後我放棄了,這真是一種地獄般的配置。

ElasticSearch + Tyre是一件輕鬆愉快的工具,我在一個小時內就可以正常工作。

Lucene僅僅是一個Java搜索庫,因此Solr被開發成爲一個全面的服務搜索應用程序,但Solr仍然有一個典型的Java Web應用程序的所有陷阱:過於複雜的XML配置,架構沉重,期望XML文檔索引,需要一個Java servlet容器(Jetty或Tomcat),這對我來說只是太多的失敗點。 ElasticSearch也是基於Lucene的,它有一個內置的servlet容器,所以就像守護進程一樣運行,使用非常直接的JSON + REST API,因此它非常適合測試,更適合Ruby。它是無模式的,它甚至可以在沒有編輯配置文件的情況下工作。一切都很好。

我真正需要的是中文搜索和ElasticSearch已經將Luecene的SmartChineseAnalyzer作爲插件打包。如果您需要這種級別的自定義,則不確定定製分析器/標記器鏈會有多困難。 ElasticSearch和Tyre的Docmentation都是一流的。

輪胎(Ruby庫的ElasticSearch)

https://github.com/karmi/tire

您可以嘗試演示,它會安裝一個導軌searchapp,下載ElasticSearch二進制和運行它,然後自動啓動的WEBrick。

$ rails new searchapp -m https://raw.github.com/karmi/tire/master/examples/rails-application-template.rb 

在我的系統也抱怨沒有一個Javascript引擎(Rails的3.2不再包括默認thereubyracer寶石?),所以我必須:

$ wget https://raw.github.com/karmi/tire/master/examples/rails-application-template.rb 
$ nano rails-application-template.rb 

在添加寶石「therubyracer」文件(尋找寶玉「輪胎」和寶石「will_paginate」),然後......

$ rails new searchapp -m rails-application-template.rb 

爲了開發自己的應用程序,我只是downladed的ElasticSearch壓縮包,並在前臺使用-f開關運行(這樣我可以輕鬆地st OP它按Ctrl-C)

$ bin/elasticsearch -f 

可以安裝eleasticsearch頭插件獲得Web管理界面

https://github.com/mobz/elasticsearch-head

也未嘗我發現:如果你有一對一很多關係模型,Tire無法在搜索結果中爲你解決它,它只是返回一個平面集合。你的has_many和belongs_to關係只是集合中的對象id,而不是完整的對象。