示意圖
簡介
ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。
安裝elasticsearch
brew install elasticsearch@5.6
1.結果:
查看版本
2.開啟、關閉、重啟es
brew services start elasticsearch@5.6
brew services stop elasticsearch@5.6
brew services restart elasticsearch@5.6
3.灌入數據方式(測試時我使用的是postman)
灌入數據示例
安裝elasticsearch-head
1.目的:用于查看es的狀態和信息(也可以查看數據)。
2.github地址: elasticsearch-head
我安裝的是chrome extension,安裝方法如下:
Running as a Chrome extension
Install ElasticSearch Head from the Chrome Web Store.
Click the extension icon in the toolbar of your web browser.
3.結果:
查看
安裝elasticsearch-sql
1.目的:使用一般的sql來對es進行查詢和聚合
2.github地址:elasticsearch-sql
3.根據相應的es版本使用手冊上面相應的命令安裝該插件。
比如我的安裝命令是:
elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.8.0/elasticsearch-sql-5.6.8.0.zip
4.使用方式
- 使用api接口操作
http://localhost:9200/_sql?sql=select * from song001/list001
- 使用web視圖操作
根據官網介紹
On elasticsearch 5.x/6.x, download and extract site.
Then start the web front-end like this:
cd site-server
npm install express --save
node node-server.js
所以下載zip包,解壓到自己的目錄下面,比如我的目錄是這樣:
sql目錄
然后按照手冊所說運行。(請提前安裝好node啦~~)
- web視圖需要安裝
http-proxy-middleware
代理
github地址:http-proxy-middleware
修改node-server.js代碼之后運行node node-server.js
var express = require('express');
var proxy = require('http-proxy-middleware');
var app = express();
app.use(express.static('../_site'));
app.use('/_sql', proxy({target: 'http://localhost:9200/', changeOrigin: true}));
app.get('/', function (req, res) {
res.sendFile("../_site/" + "index.html" );
})
var fs = require('fs');
var siteConfiguration = JSON.parse(fs.readFileSync('site_configuration.json', 'utf8'));
var server = app.listen(siteConfiguration.port)
// var express = require('express');
// var app = express();
// app.listen(3000);
- web視圖查看數據
sql數據查看
手冊
https://www.elastic.co/guide/en/elasticsearch/guide/master/create-doc.html
注意點
- 和sql的區別,比如select id, name from table group by name,得到的數據集合沒有id這個字段。
- 對數據分頁略麻煩。
- group by多字段時返回得值為樹狀結構,注意和mysql操作的區別。
補充
先占坑,后期會補充在es中的聚合運算和全文搜索。