日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较

發(fā)布時間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開源搜索引擎分類

1.Lucene系搜索引擎,java開發(fā),包括:

  • Lucene
  • Solr
  • Elasticsearch
  • Katta、Compass等都是基于Lucene封裝。

你可以想象Lucene系有多強大。

2.Sphinx搜素引擎,c++開發(fā),簡單高性能。

以下重點介紹最常用的開源搜素引擎:Lucene、Solr、Elasticsearch、Sphinx的特點和優(yōu)劣勢選型比較。

Lucene

1.Lucene簡介

Lucene的開發(fā)語言是Java,也是Java家族中最為出名的一個開源搜索引擎,在Java世界中已經(jīng)是標準的全文檢索程序,它提供了完整的查詢引擎和索引引擎,沒有中文分詞引擎,需要自己去實現(xiàn),因此用Lucene去做一個搜素引擎需要自己去架構(gòu),另外它不支持實時搜索。但是solr和elasticsearch都是基于Lucene封裝。

2.Lucene的優(yōu)劣勢

優(yōu)點:

成熟的解決方案,有很多的成功案例。apache 頂級項目,正在持續(xù)快速的進步。龐大而活躍的開發(fā)社區(qū),大量的開發(fā)人員。它只是一個類庫,有足夠的定制和優(yōu)化空間:經(jīng)過簡單定制,就可以滿足絕大部分常見的需求;經(jīng)過優(yōu)化,可以支持 10億+ 量級的搜索。

缺點:

需要額外的開發(fā)工作。所有的擴展,分布式,可靠性等都需要自己實現(xiàn);非實時,從建索引到可以搜索中間有一個時間延遲,而當前的“近實時”(Lucene Near Real Time search)搜索方案的可擴展性有待進一步完善

Apache Solr

1.Slor簡介

Solr是一個高性能,采用Java開發(fā),基于Lucene的全文搜索服務器。

文檔通過Http利用XML加到一個搜索集合中。

查詢該集合也是通過 http收到一個XML/JSON響應來實現(xiàn)。它的主要特性包括:高效、靈活的緩存功能,垂直搜索功能,高亮顯示搜索結(jié)果,通過索引復制來提高可用性,提 供一套強大Data Schema來定義字段,類型和設(shè)置文本分析,提供基于Web的管理界面等。

2.Solr的優(yōu)缺點

優(yōu)點

  • Solr有一個更大、更成熟的用戶、開發(fā)和貢獻者社區(qū)。
  • 支持添加多種格式的索引,如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等純文本格式。
  • Solr比較成熟、穩(wěn)定。
  • 不考慮建索引的同時進行搜索,速度更快。
  • 缺點

  • 建立索引時,搜索效率下降,實時索引搜索效率不高。
  • Elastic Search

    1.ElasticSearch簡介

    ElasticSearch是一個基于Lucene構(gòu)建的開源,分布式,RESTful搜索引擎。設(shè)計用于云計算中,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。支持通過HTTP使用JSON進行數(shù)據(jù)索引。

    2.Elasticsearch的優(yōu)缺點

    優(yōu)點

  • Elasticsearch是分布式的。不需要其他組件,分發(fā)是實時的,被叫做”Push replication”。
  • Elasticsearch 完全支持 Apache Lucene 的接近實時的搜索。
  • 處理多租戶(multitenancy)不需要特殊配置,而Solr則需要更多的高級設(shè)置。
  • Elasticsearch 采用 Gateway 的概念,使得完備份更加簡單。
  • 各節(jié)點組成對等的網(wǎng)絡結(jié)構(gòu),某些節(jié)點出現(xiàn)故障時會自動分配其他節(jié)點代替其進行工作。
  • 缺點

  • 還不夠自動(不適合當前新的Index Warmup API)
  • Elasticsearch 與 Solr 的比較總結(jié)

    • 二者安裝都很簡單;
    • Solr 利用 Zookeeper 進行分布式管理,而 Elasticsearch 自身帶有分布式協(xié)調(diào)管理功能;
    • Solr 支持更多格式的數(shù)據(jù),而 Elasticsearch 僅支持json文件格式;
    • Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高級功能多有第三方插件提供;
    • Solr 在傳統(tǒng)的搜索應用中表現(xiàn)好于 Elasticsearch,但在處理實時搜索應用時效率明顯低于 Elasticsearch。

    總之,Solr 是傳統(tǒng)搜索應用的有力解決方案,但 Elasticsearch 更適用于新興的實時搜索應用。

    Sphinx

    1.Sphinx簡介

    Sphinx一個基于SQL的全文檢索引擎,特別為一些腳本語言(PHP,Python,Perl,Ruby)設(shè)計搜索API接口。

    Sphinx是一個用C++語言寫的開源搜索引擎,也是現(xiàn)在比較主流的搜索引擎之一,在建立索引的事件方面比Lucene快50%,但是索引文件比Lucene要大一倍,因此Sphinx在索引的建立方面是空間換取事件的策略,在檢索速度上,和lucene相差不大,但檢索精準度方面Lucene要優(yōu)于Sphinx,另外在加入中文分詞引擎難度方面,Lucene要優(yōu)于Sphinx.其中Sphinx支持實時搜索,使用起來比較簡單方便.

    Sphinx可以非常容易的與SQL數(shù)據(jù)庫和腳本語言集成。當前系統(tǒng)內(nèi)置MySQL和PostgreSQL 數(shù)據(jù)庫數(shù)據(jù)源的支持,也支持從標準輸入讀取特定格式 的XML數(shù)據(jù)。通過修改源代碼,用戶可以自行增加新的數(shù)據(jù)源(例如:其他類型的DBMS 的原生支持)

    2.Sphinx的特點

    • 高速的建立索引(在當代CPU上,峰值性能可達到10 MB/秒);
    • 高性能的搜索(在2 – 4GB 的文本數(shù)據(jù)上,平均每次檢索響應時間小于0.1秒);
    • 可處理海量數(shù)據(jù)(目前已知可以處理超過100 GB的文本數(shù)據(jù), 在單一CPU的系統(tǒng)上可 處理100 M 文檔);
    • 提供了優(yōu)秀的相關(guān)度算法,基于短語相似度和統(tǒng)計(BM25)的復合Ranking方法;
    • 支持分布式搜索;
    • 支持短語搜索
    • 提供文檔摘要生成
    • 可作為MySQL的存儲引擎提供搜索服務;
    • 支持布爾、短語、詞語相似度等多種檢索模式;
    • 文檔支持多個全文檢索字段(最大不超過32個);
    • 文檔支持多個額外的屬性信息(例如:分組信息,時間戳等);
    • 支持斷詞;

    你可能也喜歡:

  • 2019 最新螞蟻花唄Java三面題目:紅黑樹+并發(fā)容器+CAS+Solr+分布式等
  • 阿里P8架構(gòu)師談:Quartz調(diào)度框架詳解、運用場景、與集群部署實踐
  • 阿里P8架構(gòu)師談:分布式鎖的3種實現(xiàn)(數(shù)據(jù)庫、緩存、Zookeeper)
  • 阿里P8架構(gòu)師談:Zookeeper的原理和架構(gòu)設(shè)計,以及應用場景
  • 阿里P8架構(gòu)師談:NoSQL和SQL的區(qū)別,NoSQL的使用場景和選型比較
  • 阿里P8架構(gòu)師談:從單體架構(gòu)、到SOA、再到微服務的架構(gòu)設(shè)計詳解

  • 總結(jié)

    以上是生活随笔為你收集整理的阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。