用資料庫做搜尋並不好,主要問題
每次搜尋都要對記錄的一長條內容進行掃瞄
like %關鍵字% 不能使用到索引
不能將搜尋詞拆分開來,很難實現部分匹配,比如杭州醫療保險,如果搜尋杭州保險,就搜尋不到
同義詞的實現也比較複雜
要給表中新增一些column,必須用複雜的修改表結構的語法去執行。而且可能對系統**還有一定的影響。
lucene解決了上述的問題
但是其也存在問題
lucene是部署在單台機器上的,假設磁碟有500個g的空間,如果我們資料量很大,有乙個t的資料量,lucene放不下怎麼辦?
放在多台裝置上,分布式,散落在多台機器上。如電商**前端搜尋功能,與多台機器通訊的過程,以及資料的管理,都非常麻煩。另外,保證資料不丟失,系統的高可用性上也存在很大的挑戰。
這個過程如果我們自己來實現,很麻煩。
在這種情況下elastic search應運而生。每個es節點都封裝了lucene,多個es暴露出乙個統一的位址。elastic search給我們進行管理多台裝置。還實現了副本、故障恢復等機制及效能優化。
所以,elastic search是分布式、近實時、可伸縮的搜尋引擎和資料分析引擎
也可以把es當成了乙個nosql儲存引擎,乙個可以儲存文件型別資料的儲存系統,操作裡面的document。
資料庫核心概念
elastic search核心概念
table
index(type)
rowdocument
column
field
schema
sqldsl
sql操作
es操作
like
match query
where
term filter
interms filter多值搜尋
match query 或者 should, 加上 and operator 或者 minimum_should_match
between
range filter
order by
sort 語句
group by
bucket
聚合操作
metric
sql: and or not
es: bool, must, should, must_not, query+operator(and, or)
傳統關係型資料庫和elasticsearch區別
rdbms - 事務性 / join
安裝與配置Elasticsearch
elasticsearch 屬於 elastic 公司,進入該公司的官網 www.elastic.co。在這裡可以清楚啊的看到elastic stack產品的各個元件和功能 gz將解壓後的目錄放到 usr local 中 mv elasticsearch 5.6 3 usr local 由於保護機制...
Elasticsearch 安裝與配置
elasticsearch springboot整合elasticsearch mysql資料匯入到elasticsearch 使用ik分詞器實現搜尋 限制elasticsearch返回的結果集大小 第一步很重要,這裡就是入坑的開始了,到底該安裝哪個版本。最新的是7.0最好不要選最新的,選個接近最新...
Elasticsearch 安裝與啟動
es支援在不同的平台上執行,下面這幅圖中,對號標記的是經過測試的平台,其他的也可以執行,但是可能會出現bug。然後解壓,進入bin目錄,執行下面的命令 bin elasticsearch如果想要以守護程序的方式執行,可以新增 d引數 bin elasticsearch des在linux系統中支援修...