2024智能搜索引擎_第1頁
2024智能搜索引擎_第2頁
2024智能搜索引擎_第3頁
2024智能搜索引擎_第4頁
2024智能搜索引擎_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

首先要構建一個搜索引擎一般以開源搜索引擎為優(yōu)先考慮,如果完全自研搜索引擎成本很高。目前比較流行的開源搜索引擎有phnx、ucnesleatcerch,還有可以做搜索引擎但是功能還不完善的有Rdsachbvegrong/pgqlutxtach。我們選擇的是Etcsach,選擇的依據(jù)是分布式、高可用,還有就是面向文檔存儲,存儲的onchma社區(qū)也很活躍,提出的問題和建議能很快響應;還有就是自帶pck組件,提供一些機器里面計算搜索數(shù)據(jù),利用離散數(shù)據(jù)解決轉(zhuǎn)化率等問題。有了大數(shù)據(jù)需要和Elasticsearch進web端和Elasticsearch接下來講一下數(shù)據(jù)在搜索中的寫入和讀取,Elasticsearch是基于Lucene開發(fā),數(shù)據(jù)讀寫LuceneapiRPCLuceneindexIO有一個translog,確保掉連后能將數(shù)據(jù)追回,真實落盤的索引文件會存儲在文件系統(tǒng)中。訪問索引數(shù)據(jù)可以像HDFS或者shard來加速訪問,這些都是通過文件系統(tǒng)來解決。第二個局勢索引的刷新和flush,泛文件是定時生成的、不可變,寫進的數(shù)據(jù)是在一個新的段中。段文件訪問時需要在原始數(shù)據(jù)查詢記錄,元數(shù)據(jù)不是實時更新的,需要通過一次refresh來加載泛文件。refresh的功能就是讓新數(shù)據(jù)可見,觸發(fā)由于有一個后臺內(nèi)存,每5segmentupdate數(shù)據(jù)時,也會進行refresh操作,否則也不能拿到最新數(shù)據(jù)。Flush就是將數(shù)據(jù)從內(nèi)存棧寫這個階段會自動定時落盤清理數(shù)據(jù),如果translog超出設定的大小也會強制將數(shù)據(jù)放到磁coordinateElasticsearch數(shù)據(jù),然后在coordinate里面做一個匯聚。如圖要查詢100條數(shù)據(jù),需要在分片中查詢100400400條數(shù)據(jù)依據(jù)優(yōu)先級做一個優(yōu)先級隊列取100LSM接在內(nèi)存里面查詢,能夠有效的提高訪問性能。Elasticsearch緩存主要有:首先是query為一個,在段文件中做集群查詢操作。假設a條件命中文檔特別多,會將a條件的數(shù)據(jù)做bitseta會將段文件做一個mmap,減少數(shù)據(jù)在內(nèi)存中的拷貝,用戶訪問時可以直接定位到索引目需要注意的是(1)有些高成本的查詢erms/range,只要重復執(zhí)行兩次,就將其加載到緩存中去,在查詢時要避免使用這類型的條件,要使用時盡量使查詢效率變高,range1000100次更新操作,在索引中每一條數(shù)據(jù)都會當做一條新數(shù)據(jù)寫入索引文件里面,在查詢ID等于1要查一百次數(shù)據(jù),因此在使用時盡量少去做更新操作。(4)還要做適當?shù)母綦x,Elasticsearch的數(shù)據(jù)隔離是以節(jié)點為單位,當某一節(jié)點訪問過大就會搶用閑時節(jié)點資源。接下來分享一下我們的相關案例以及相應的經(jīng)驗總結,突然出現(xiàn)一個機器querycache突然飆升,緩存從幾百兆一下升到20多個G,排查過程首先查詢索引是否有大的訪問量,然后檢查到底查詢了什么數(shù)據(jù),然后發(fā)現(xiàn)range條件異常,是一個高耗時查詢,放到cachequerycache2500萬轉(zhuǎn)化為bitmap大約幾利用script查詢替換,拿到查詢條件用腳本進行過濾,目的是查詢內(nèi)容不再進入緩存。這比較大,總共有3千萬條數(shù)據(jù),命中條件有一千兩百萬條數(shù)據(jù),拿到中間結果再用腳本過集群都宕機。具體排查發(fā)現(xiàn)觸發(fā)一個索引bug,7以前版本做match、前置查詢或者正則定存儲機器組實現(xiàn)資源分組,這樣無論出現(xiàn)何種bug只會影響自己組的機器。內(nèi)存也比較大。排查發(fā)現(xiàn)集群的qps并未明顯增長,然后查詢?nèi)肟诹髁渴欠裼凶兓?,發(fā)現(xiàn)scanfgc題有以下幾個方面:(1)Elasticsearchscanfdscanscanscan(3query使用不當,scanscansearch_afterscan重置,每一次操作都會下移,如果重置就發(fā)生數(shù)據(jù)丟失。而search_after不會發(fā)生,因為接下來講一下有贊在Elasticsearch部署上的一些經(jīng)驗。上圖是一些相關配置,雖然有一些routing.allocation數(shù)、副本數(shù)等可以通過一個template匹配索引創(chuàng)建的模板。還有個strictmapping,Elasticsearch可以在寫數(shù)據(jù)時動態(tài)推測數(shù)據(jù)字段類型,但是會有個問題,如身份證或者郵要是緩存,緩存整個查詢結果,Elasticsearch緩存查詢條件的結果,這樣可以避免流量進ElasticsearchETLdataXElasticsearch寫組件,通過dataX限制讀取寫入的數(shù)據(jù)量。底層運行環(huán)境會用到云主機、獨立服務器,還有自建虛擬機,因為云主機存在一個問題:網(wǎng)絡延遲或者抖動存在問題,如果master接下來講一下特定功能,第一個就是商品檢索/商品列表,Elasticsearch支持數(shù)組操作,一個商品可以打到多個標簽,需要存一個標簽的列表,這在mysql上就不太適用。檢索特征每次查詢相當于真實數(shù)據(jù),Elasticsearch在查詢標簽為1是在整個內(nèi)部執(zhí)行,會對所有店集群管理主要是用監(jiān)控插件做一些隔離,Elasticsearch提供的自動均衡能力比較弱,只能50-60CPUmasterdatanod

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論