搜索引擎solr和elasticsearch
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載注明出處http://blog.csdn.net/u013142781
目錄(?)[+]
剛開始接觸搜索引擎,網(wǎng)上收集了一些資料,在這里整理了一下分享給大家。
一、關(guān)于搜索引擎
搜索引擎(Search Engine)是指根據(jù)一定的策略、運(yùn)用特定的計(jì)算機(jī)程序從互聯(lián)網(wǎng)上搜集信息,在對信息進(jìn)行組織和處理后,為用戶提供檢索服務(wù),將用戶檢索相關(guān)的信息展示給用戶的系統(tǒng)。搜索引擎包括全文索引、目錄索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、門戶搜索引擎與免費(fèi)鏈接列表等。
一個(gè)搜索引擎由搜索器 、索引器 、檢索器 和用戶接口 四個(gè)部分組成。搜索器的功能是在互聯(lián)網(wǎng) 中漫游,發(fā)現(xiàn)和搜集信息。索引器的功能是理解搜索器所搜索的信息,從中抽取出索引項(xiàng),用于表示文檔 以及生成文檔庫的索引表。檢索器的功能是根據(jù)用戶的查詢在索引庫中快速檢出文檔,進(jìn)行文檔與查詢的相關(guān)度評(píng)價(jià),對將要輸出的結(jié)果進(jìn)行排序,并實(shí)現(xiàn)某種用戶相關(guān)性反饋機(jī)制。用戶接口的作用是輸入用戶查詢、顯示查詢結(jié)果、提供用戶相關(guān)性反饋機(jī)制。
——以上文字百度百科(點(diǎn)擊我跳轉(zhuǎn)到對應(yīng)頁面),更多相關(guān)搜索引擎介紹請看該文章,如全文搜索引擎、目錄索引類搜索引擎、元搜索引擎的區(qū)別。
二、Lucene
solr和elasticsearch都是基于Lucene實(shí)現(xiàn)的,因此這里有必要對Lucene進(jìn)行介紹。
Lucene是apache軟件基金會(huì)4 jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,是一個(gè)開放源代碼的全文檢索引擎工具包,但它不是一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言)。Lucene的目的是為軟件開發(fā)人員提供一個(gè)簡單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。Lucene是一套用于全文檢索和搜尋的開源程式庫,由Apache軟件基金會(huì)支持和提供。Lucene提供了一個(gè)簡單卻強(qiáng)大的應(yīng)用程式接口,能夠做全文索引和搜尋。在Java開發(fā)環(huán)境里L(fēng)ucene是一個(gè)成熟的免費(fèi)開源工具。就其本身而言,Lucene是當(dāng)前以及最近幾年最受歡迎的免費(fèi)Java信息檢索程序庫。人們經(jīng)常提到信息檢索程序庫,雖然與搜索引擎有關(guān),但不應(yīng)該將信息檢索程序庫與搜索引擎相混淆。
Lucene是一個(gè)全文檢索引擎的架構(gòu)。那什么是全文搜索引擎?
全文搜索引擎是名副其實(shí)的搜索引擎,國外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,國內(nèi)著名的有百度(Baidu)。它們都是通過從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站的信息(以網(wǎng)頁文字為主)而建立的數(shù)據(jù)庫中,檢索與用戶查詢條件匹配的相關(guān)記錄,然后按一定的排列順序?qū)⒔Y(jié)果返回給用戶,因此他們是真正的搜索引擎。
從搜索結(jié)果來源的角度,全文搜索引擎又可細(xì)分為兩種,一種是擁有自己的檢索程序(Indexer),俗稱“蜘蛛”(Spider)程序或“機(jī)器人”(Robot)程序,并自建網(wǎng)頁數(shù)據(jù)庫,搜索結(jié)果直接從自身的數(shù)據(jù)庫中調(diào)用,如上面提到的7家引擎;另一種則是租用其他引擎的數(shù)據(jù)庫,并按自定的格式排列搜索結(jié)果,如Lycos引擎。
三、solr
Solr是一個(gè)基于Lucene的Java搜索引擎服務(wù)器。Solr 提供了層面搜索、命中醒目顯示并且支持多種輸出格式(包括 XML/XSLT 和 JSON 格式)。它易于安裝和配置,而且附帶了一個(gè)基于 HTTP 的管理界面。Solr已經(jīng)在眾多大型的網(wǎng)站中使用,較為成熟和穩(wěn)定。Solr 包裝并擴(kuò)展了 Lucene,所以Solr的基本上沿用了Lucene的相關(guān)術(shù)語。更重要的是,Solr 創(chuàng)建的索引與 Lucene 搜索引擎庫完全兼容。通過對Solr 進(jìn)行適當(dāng)?shù)呐渲?#xff0c;某些情況下可能需要進(jìn)行編碼,Solr 可以閱讀和使用構(gòu)建到其他 Lucene 應(yīng)用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 創(chuàng)建的索引。
介紹性文字過多,很多東西實(shí)際操作過就會(huì)好理解很多,這里推薦一篇不錯(cuò)的入門文章:Solr開發(fā)文檔
書籍推薦一本不錯(cuò)的書籍:《Lucene In Action》有中文版的
四、elasticsearch
Elasticsearch是一個(gè)基于Apache Lucene(TM)的開源搜索引擎。無論在開源還是專有領(lǐng)域,Lucene可以被認(rèn)為是迄今為止最先進(jìn)、性能最好的、功能最全的搜索引擎庫。
但是,Lucene只是一個(gè)庫。想要使用它,你必須使用Java來作為開發(fā)語言并將其直接集成到你的應(yīng)用中,更糟糕的是,Lucene非常復(fù)雜,你需要深入了解檢索的相關(guān)知識(shí)來理解它是如何工作的。
Elasticsearch也使用Java開發(fā)并使用Lucene作為其核心來實(shí)現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復(fù)雜性,從而讓全文搜索變得簡單。
因?yàn)椴┲骱竺嬷饕私鈱W(xué)習(xí)elasticsearch,因此對elasticsearch有更多的學(xué)習(xí)資料推薦。
兩篇網(wǎng)頁版教程,十分全面:?
http://es.xiaoleilu.com/010_Intro/10_Installing_ES.html?
http://udn.yyuap.com/doc/mastering-elasticsearch/chapter-5/54_README.html
安裝插件:?
http://blog.csdn.net/wenqisun/article/details/47952199
一篇非常不錯(cuò)的文章(必看):?
http://www.aboutyun.com/thread-17078-1-1.html
Elastic中文社區(qū):http://elasticsearch.cn/
elasticsearch 集群搭建(建議選擇比較低版本搭建):?
http://my.oschina.net/xiaohui249/blog/228748
五類Elasticsearch擴(kuò)展性插件推薦:?
http://cloud.51cto.com/art/201505/476450.htm
五、solr和elasticsearch比較
Elasticsearch 與 Solr 的比較總結(jié)
二者安裝都很簡單;
Solr 利用 Zookeeper 進(jìn)行分布式管理,而 Elasticsearch 自身帶有分布式協(xié)調(diào)管理功能;
Solr 支持更多格式的數(shù)據(jù),而 Elasticsearch 僅支持json文件格式;
Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高級(jí)功能多有第三方插件提供;
Solr 在傳統(tǒng)的搜索應(yīng)用中表現(xiàn)好于 Elasticsearch,但在處理實(shí)時(shí)搜索應(yīng)用時(shí)效率明顯低于 Elasticsearch。
Solr 是傳統(tǒng)搜索應(yīng)用的有力解決方案,但 Elasticsearch 更適用于新興的實(shí)時(shí)搜索應(yīng)用。
兩者對比更詳細(xì)介紹請看如下文章:?
http://www.cnblogs.com/chowmin/articles/4629220.html
總結(jié)
以上是生活随笔為你收集整理的搜索引擎solr和elasticsearch的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DDD及相关概念
- 下一篇: CPU访问计算机各组件周期