摘要:Elasticsearch 是一個分布式、RESTful 風(fēng)格的搜索和數(shù)據(jù)分析引擎, 國內(nèi)簡稱ES,Elasticsearch是用java開發(fā)的,底層基于Lucene, Lucene是一種全文檢索的搜索庫...
Elasticsearch 是一個分布式、RESTful 風(fēng)格的搜索和數(shù)據(jù)分析引擎, 國內(nèi)簡稱ES,Elasticsearch是用java開發(fā)的,底層基于Lucene, Lucene是一種全文檢索的搜索庫,直接使用Lucene還是比較麻煩的,Elasticsearch在Lucene的基礎(chǔ)上開發(fā)了一個強大的搜索引擎。
ELK
大家估計都經(jīng)常見到ELK這個關(guān)鍵詞,他其實代表了Elasticsearch + Logstash + Kibana 三套軟件,他們的作用如下:
Elasticsearch - 前面簡介提到過,解決海量數(shù)據(jù)搜索問題。
Logstash - 解決數(shù)據(jù)同步問題,因為我們數(shù)據(jù)一般存儲在Mysql之類的數(shù)據(jù)庫中,需要將數(shù)據(jù)導(dǎo)入到ES中,Logstash就支持數(shù)據(jù)同步、數(shù)據(jù)過濾、轉(zhuǎn)換功能。
Kibana - Elasticsearch數(shù)據(jù)可視化支持,例如:通過各種圖表展示ES的查詢結(jié)果,也可以在Kibana通過ES查詢語句分析數(shù)據(jù),起到類似ES Web后臺的作用。
應(yīng)用場景:
各種搜索場景,例如:訂單搜索、商品搜索。
日志處理和分析,例如:通過ELK搭建日志處理和分析方案。
地理空間數(shù)據(jù)搜索,例如:查詢距離最近的店鋪、查詢某個空間范圍內(nèi)的店鋪。
多種客戶端支持:
因為Elasticsearch支持RESTful風(fēng)格的Api, 協(xié)議使用的是JSON,所以我們可以直接通過http api操作Elasticsearch,除了直接通過http api操作ES,Elasticsearch還支持下面各種開發(fā)語言封裝的客戶端:
curl
c#
go
php
java
python
ruby
sql - 你沒看錯,ES支持SQL查詢,意味著我們可以使用SQL語句查詢ES的數(shù)據(jù)
網(wǎng)友評論:
期待可以打補丁增加這個全文搜索功能
2021-12-24 11:51:27 回復(fù)