1. 程式人生 > 其它 >關於docker安裝使用的ES

關於docker安裝使用的ES

安裝

使用docker最好,簡單方便,使用介面的方式使用。
1、分散式的實時檔案儲存,每個欄位都被索引並可被搜尋
2、分散式的實時分析搜尋引擎
3、可以擴充套件到成百上千臺伺服器,處理PB級結構化或非結構化資料。
elasticsearch:全文檢索工具,使用方式是在linux安裝,需要java環境,中文分詞需要ik分詞器擴充套件外掛,然後通過介面的方式,存入資料,讀取資料,查詢資料
注意資料庫資料的同步更新,以及es防止掛掉的指令碼定時任務,
安裝PHP擴充套件,例項化es之後,將文件加入索引,在新增的時候就建立了索引,索引就是表,文件就是行記錄,然後通過
$params = [ 'index' => 'articles_index', 'type' => 'articles_type', 'id' => 'articles_1'];
//index相當於資料庫名字 type相當於表名 。。
$res = $client->get($params);
獲取資料。 或者delete或者indices()-》delete()刪除索引

網頁案例

php+es實現全文檢索demo

使用場景

企業裡對資料的查詢一般可以分為三種:列表查詢、詳情查詢和統計查詢。列表一般就是列表頁對應的查詢,詳情查詢一般就是具體id對應的詳情查詢,而統計查詢一般都是在看一些數值之類的報表,也就是一堆count值
可以使用sql轉換ES查詢語句的方式,提供統一的查詢api,例如,框架中ORM方式先得出sql語句,之後使用擴充套件工具類將sql轉換為ES查詢語句,再使用ESapi進行查詢。

基本知識

查詢方式可以使用composer的外掛將sql語句轉變為ES查詢語句的json,比如query"{"match":"zhongguo"}"ES查詢有各種樣式的語句可以使用
eg:match系列
1、match:返回所有匹配的分詞。
2、match_all:查詢全部。
3、match_phrase:短語查詢,在match的基礎上進一步查詢片語,可以指定slop分詞間隔。
4、match_phrase_prefix:字首查詢,根據短語中最後一個片語做字首匹配,可以應用於搜尋提示,但注意和max_expanions搭配。其實預設是50.......
5、multi_match:多欄位查詢,使用相當的靈活,可以完成match_phrase和match_phrase_prefix的工作
還有排序查詢(sort);分頁(from,size);bool查詢(must,should);查詢結果過濾(_source);高亮顯示(highlight);精確查詢與模糊查詢(terms);聚合查詢(avg、max、min、sum);分組查詢(aggs,range分組,field為欄位,from,to範圍);

ES基本語句使用

安裝logstash

需要使用docker 安裝Logstash,來收集檔案/var/log/messages
pull與es對應版本的logstash, 然後 run 等待30秒 檢視日誌,docker logs -f logstash
將拷貝資料 授予許可權
docker cp logstash:/usr/share/logstash /data/elk7/
mkdir /data/elk7/logstash/config/conf.d
chmod 777 -R /data/elk7/logstash
vi修改 logstash配置檔案
vi /data/elk7/logstash/config/logstash.yml : 指定名稱,host,es的地址hosts
新建檔案syslog.conf,用來收集/var/log/messages
vi /data/elk7/logstash/config/conf.d/syslog.conf
許可權 chmod 644 /var/log/messages
重新啟動logstash

docker安裝logstash

安裝kibana

kibana是ES的視覺化工具 使用docker安裝,需要pull 與es對應版本的kibana,然後寫入配置檔案 指定名稱,host,es的地址hosts,啟動的時候開啟預設的5601埠,並 將配置檔案對映到容器中的config.yml位置,之後等待30秒或者docker logs -f kibana日誌發現搭建成功,可以訪問5601埠。
kibana的安裝

高山仰止,景行行止,雖不能至,心嚮往之。