国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

開源搜索引擎Elasticsearch和Solr對比和分析

2018-04-24 12:17:26魏濤孟方園袁平殷鋒
現(xiàn)代計算機(jī) 2018年6期
關(guān)鍵詞:分片字段搜索引擎

魏濤,孟方園,袁平,殷鋒

(1.四川大學(xué)計算機(jī)學(xué)院,成都 610065;2.北京衛(wèi)星導(dǎo)航中心,北京 100094;3.重慶第二師范學(xué)院,重慶 400067;4.西南民族大學(xué)校園網(wǎng)絡(luò)管理中心,成都 610064)

0 引言

在信息化高速發(fā)展的今天,大量的智能設(shè)備以及人類的活動通過互聯(lián)網(wǎng)進(jìn)行計算和通信,從而在互聯(lián)網(wǎng)上產(chǎn)生了大量的信息,在這些海量的信息中既包含著對我們有用的信息,同時也充斥的大量的無用信息,用傳統(tǒng)的工具如關(guān)系型數(shù)據(jù)庫對這些信息進(jìn)行存儲,檢索和分析顯然力不從心[1]。因此,有大量的工具被開發(fā)出來,從而為檢索和處理海量的數(shù)據(jù)提供了有效的解決辦法[2]。其中,作為同為基于全文搜索框架Apache Lucene的Elasticsearch和Solr,其主要功能相似,但在配置部署,使用及檢索性能方面存在一定的區(qū)別,本文通過對二者進(jìn)行對比和分析,為項目成員對這二者搜索引擎的選擇提供參考。

1 簡介

Elasticsearch是一個分布式、可擴(kuò)展、實(shí)時的搜索與數(shù)據(jù)分析引擎。Elasticsearch不僅可以全文搜索,同時提供結(jié)構(gòu)化搜索、數(shù)據(jù)分析、復(fù)雜的語言處理、地理位置和對象間關(guān)聯(lián)關(guān)系等[3]。通過REST和schemafree的JSON文檔提供分布式、多租戶全文搜索。并且官方提供 Java,Groovy,PHP,Ruby,Perl,Python,.NET和JavaScript客戶端。許多互聯(lián)網(wǎng)公司使用Elastic?search作為其內(nèi)部搜索引擎,如Wikipedia使用Elastic?search提供帶有高亮片段的全文搜索。衛(wèi)報使用Elas?ticsearch將網(wǎng)絡(luò)社交數(shù)據(jù)結(jié)合到訪客日志中,實(shí)時的給它的編輯們提供公眾對于新文章的反饋。Stack Over?flow將地理位置查詢?nèi)谌肴臋z索中去,并且使用more-like-this接口去查找相關(guān)的問題與答案。GitHub使用Elasticsearch對1300億行代碼進(jìn)行查詢。

Solr支持許多世界上最大的互聯(lián)網(wǎng)站點(diǎn)的搜索和導(dǎo)航功能。Solr它是一種開放源碼的、基于Lucene Java的搜索服務(wù)器,它易于安裝和配置,具有高可靠性、可擴(kuò)展性和容錯性,可提供分布式索引,復(fù)制和負(fù)載平衡查詢,自動故障轉(zhuǎn)移和恢復(fù),集中式配置等功能[4]。而且附帶了一個基于HTTP的管理界面。Solr提供分布式索引、分片、副本集、負(fù)載均衡和自動故障轉(zhuǎn)移和恢復(fù)功能。不少知名企業(yè),如AT&T,eBay,Instagram和Netfilx均使用Solr。

2 功能比較

2.1 Elastics earch

Elasticsearch是一個強(qiáng)大的搜索引擎,基于Apache Lucene的全文搜索引擎框架開發(fā),具有近實(shí)時、高性能、分布式和零配置的優(yōu)點(diǎn)。Elasticsearch有以下幾個關(guān)鍵的概念:

●節(jié)點(diǎn)(Node):節(jié)點(diǎn)是一個Elasticsearch的實(shí)例,一般一臺主機(jī)上部署一個節(jié)點(diǎn)

●集群(Cluster):集群由若干節(jié)點(diǎn)組成,和任意節(jié)點(diǎn)的通信等價于和集群的通信

●分片(Shard):一個索引會分成多個分片存儲,分片數(shù)量在索引建立后不可更改

●副本(Replica):副本是分片的一個拷貝,目的在于提高系統(tǒng)的容錯性和搜索的效率

●索引(Index):類似數(shù)據(jù)庫的庫

●類型(Type):類似數(shù)據(jù)庫的表

●文檔(Document):類似數(shù)據(jù)庫的行,包含一個或多個Field

●字段(Field):搜索的最小單元,可通過Mapping定義不同的屬性(比如類型,可否被搜索等)

Elasticsearch的部署屬于一鍵式的,只需解壓從官網(wǎng)下載的壓縮包并運(yùn)行bin目錄下的elasticsearch程序即可(前提是本機(jī)已配置好JDK),一旦在多臺主機(jī)上啟動擁有同一個cluster.name的Elasticsearch實(shí)例,它們會自動組成一個集群,無需其他操作,自動實(shí)現(xiàn)分布式集群。

Elasticsearch通過對JSON格式的文檔進(jìn)行索引,不僅支持并自動識別string、num、bool等常規(guī)字段,同時對于特殊字段如地理位置類型([lat,lon])和 ip(192.168.0.1)類型的字段提供特殊支持,只需在索引前手動指定相應(yīng)字段為geo或者ip字段。在索引方面Elasticsearch提供了批量索引的工具,大大提高了索引及更新效率,在數(shù)據(jù)檢索方面不僅可以提供全文索引,還提供類似關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)化檢索(Structured Query DSL)。

Elasticsearch的分布式模式默認(rèn)情況下分片數(shù)量設(shè)置為5,并配置有1份復(fù)制項,在組成集群的情況下,分片會按照一定的算法存儲在集群的各臺主機(jī)上,以確保其中一臺主機(jī)意外下線不會影響整個集群的正常工作,如下圖所示,由Dremqueen,Fin,Tarot為3個節(jié)點(diǎn)組成的Elasticsearch集群,以索引test100w為例,索引分成了5個分片,并且每個分片都有一個冗余分片。

圖1 Elasticsearch分片存儲情況

2.2 Solr

Solr是一種開放源碼的、基于Lucene Java的搜索引擎,易于嵌入到Web應(yīng)用中。Solr提供了全文搜索、聚類搜索、高亮顯示等功能,支持多種輸出格式(XML/XSLT和JSON等格式),且自帶一個基于HTTP的管理界面。

Solr需使用Tomcat運(yùn)行,或使用內(nèi)置的Jetty容器直接運(yùn)行;使用Solr需新建core(類似實(shí)例),core內(nèi)可直接插入文檔,不同的core之間沒有任何關(guān)系和影響;每個core有單獨(dú)的存儲路徑、配置文件;文檔有批量導(dǎo)入的和使用HTTP新增的方式,批量導(dǎo)入可直接用post請求將文件發(fā)送至Solr,建立索引,HTTP新增可設(shè)置若干個文檔提交一次;索引文件與Lucene的相同,可使用Luke等工具打開和查看。Solr功能特點(diǎn)如下:

Solr索引的實(shí)現(xiàn)是用POST方法向Solr服務(wù)器發(fā)送一個描述Field及其內(nèi)容的XML文檔,Solr根據(jù)XML文檔添加、刪除、更新索引。因此Solr不支持對基本字段的自動識別,且嵌套結(jié)構(gòu)的JSON文檔無法直接在Solr中進(jìn)行索引,需將JSON文檔扁平化(成為只有1級的文檔)后才能進(jìn)行索引操作。Solr搜索只需要發(fā)送HTTPGET請求,然后對Solr返回XML、JSON等格式的查詢結(jié)果進(jìn)行解析,組織頁面布局。Solr不提供構(gòu)建UI的功能,Solr提供了一個管理界面,通過管理界面可以查詢Solr的配置和運(yùn)行情況。

Solr自帶的示例分布式啟動命令為“solr start-e cloud-noprompt”,啟動后會自動在本機(jī)創(chuàng)建2個shard的分布式架構(gòu)Solr,管理界面如下圖:

圖2 Solr分布式集群管理界面

3 性能測試

3.1 環(huán)境及數(shù)據(jù)準(zhǔn)備

用來進(jìn)行測試的主機(jī)配置如下:

CPU:Intel Xeon E7-4807,1.87GHz

MEM:8GB

DISK:HDD 40GB

測試工具與數(shù)據(jù)如下:

LoadRunner,使用兩臺Windows7臺式機(jī)作為運(yùn)行Vuser虛擬用戶的壓力測試機(jī);

共有100W條文檔,其中包含3種格式,數(shù)量分別為40W、30W、30W。文檔的數(shù)字、時間部分為隨機(jī)生成,文本部分為從大量電子書中隨機(jī)選取,標(biāo)簽部分為從數(shù)百個詞語中隨機(jī)選??;

例如,在教學(xué)《有理數(shù)》(北師大版數(shù)學(xué)七年級上冊)這一課時,教師就可以制作一節(jié)相關(guān)的微課,詳細(xì)講解如何通過有理數(shù)去探究勾股定理,不僅讓學(xué)生對有理數(shù)的各種知識有著充分的了解,還可以學(xué)習(xí)到未來需要學(xué)習(xí)的知識。通過這樣的方式進(jìn)行教學(xué),可以使課堂教學(xué)內(nèi)容有效擴(kuò)展,為學(xué)生未來的學(xué)習(xí)打下堅實(shí)的基礎(chǔ),切實(shí)提升數(shù)學(xué)教學(xué)質(zhì)量,提升學(xué)生的學(xué)習(xí)效率。

關(guān)鍵詞詞庫,包含50W詞語,其中中文詞語約40W個、數(shù)字10W個、英文單詞約1.5W個;

地理搜索條件、時間段范圍、數(shù)值范圍各30個,其中地理搜索包括20個圓形(按距離搜索)和10個多邊形。

測試項如表1所示:

表1

3.2 性能對比

(1)索引建立和更新速度對比

表2

由上表可以看出Elasticsearch的索引建立和更新速度要優(yōu)于Solr。

(2)檢索速度對比

圖3 關(guān)鍵字搜索響應(yīng)速度對比

圖4 模糊搜索響應(yīng)速度對比

4 結(jié)語

本文通過簡要介紹開源搜索引擎Elasticsearch和Solr,對二者所支持的索引和檢索方法進(jìn)行了闡述,并通過對其索引和檢索性能進(jìn)行多方面比較,為項目開發(fā)人員依據(jù)自身項目的需要選擇合適的搜索引擎提供了依據(jù)。

參考文獻(xiàn):

[1]F.Ohhorst.Turning Big Data Into BigMoney.Big Data Analytics,,New Jersey,AB.D.,2013.

[2]S.Ramamorthy,S.Rajalakshmi.Optimize d Data Analysis in Cloud using BigData Analytics Techniques.4th ICCCNT Conferense,Tiruchengode,India,2013.

[3]https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html

[4]http://lucene.apache.org/solr/guide/7_1/solr-tutorial.html.

猜你喜歡
分片字段搜索引擎
上下分片與詞的時空佈局
詞學(xué)(2022年1期)2022-10-27 08:06:12
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
分片光滑邊值問題的再生核方法
CDN存量MP4視頻播放優(yōu)化方法
基于模糊二分查找的幀分片算法設(shè)計與實(shí)現(xiàn)
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
CNMARC304字段和314字段責(zé)任附注方式解析
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
無正題名文獻(xiàn)著錄方法評述
廣告主與搜索引擎的雙向博弈分析
祁阳县| 正镶白旗| 自治县| 高尔夫| 钟山县| 襄城县| 徐水县| 湘阴县| 伊宁县| 平和县| 吉隆县| 绥滨县| 北流市| 阳朔县| 乡城县| 青川县| 巴南区| 井冈山市| 兴义市| 从江县| 竹山县| 绍兴县| 保定市| 汉源县| 汝州市| 霍城县| 新干县| 囊谦县| 乐昌市| 盘山县| 望谟县| 石家庄市| 中山市| 曲阳县| 莆田市| 嘉黎县| 阿勒泰市| 论坛| 寿宁县| 平阴县| 松原市|