安裝
es安裝
- 前提: 需要java運行環境
- mac下安裝java: 官網下載安裝包dmg文件即可
- win 下安裝java:
- mac / linux系統下安裝es : 慕課網es入門
- mac下的dmg安裝包安裝的應用程序在/Applications裏,自己下的其它安裝包(比如zip,tar)一般我習慣裝在家目錄~/Applications裏
- win下安裝es:
插件安裝
- head 插件 : github地址
- 描述:
- 前提: 安裝node與npm
- mac: 官網下載nodejs安裝包即可
- 安裝位置如下:
This package has installed: Node.js v10.13.0 to /usr/local/bin/node npm v6.4.1 to /usr/local/bin/npm Make sure that /usr/local/bin is in your $PATH.
- 進入head插件主文件夾,執行 npm install
相關命令
- 啓動es, 先cd elasticsearch;
- ./bin/elasticsearch 啓動es
- ./bin/elasticsearch -d 在後臺啓動es,不佔用終端資源
- 關閉es
- 前臺啓動時,ctrl+c
- 後臺啓動時,ps -ef | grep “elasticsearch” 查看進程號,再 kill 進程號
- 啓動es的head插件,先cd elastic-head-master
- npm run start
- 注意:
- 1.用head插件前必須先啓動es
- 2.用head插件要先在elasticsearch/conf/ealsticsearch.yml最後插入如下兩行數據:
http.cors.enabled: true
http.cors.allow-origin: “*” - 3.上面兩個爲單結點模式下的配置,當爲分佈式配置並搭配head插件時,
- 在cluster主機中除了2中添加的,還要有:
cluster.name: wali
node.name: master
node.master: true
network.host: 127.0.0.1 - 在slavers從結點中的conf/elasticsearch.yml中最後不用加入2中的,要加入下面的:
cluster.name: wali
node.name: slave1
node.master: true
network.host: 127.0.0.1
http.port: 8200
discovery.zen.ping.unicast.hosts: [“127.0.0.1”] - 一臺機器配置分佈式時,要複製整個elasticsearch文件夾並刪除其中的data文件夾,或者從原始解壓包直接複製兩份.
- 在cluster主機中除了2中添加的,還要有:
增刪改查
- es數據類型: integer, text, keyword, date
- 索引: people, 類型: man, 文檔
增加
- 增加文檔id爲1的文檔: PUT 127.0.0.1:9200/people/man/1
- 增加文檔,文檔id自動生成: POST 127.0.0.1:9200/people/man
{
"name": "felix",
"country": "China",
"data": "1994-01-01",
"age": 24
}
更新/更改
- 修改文檔id爲1的"name"屬性,以爲age屬性
- 普通方式: POST 127.0.0.1:9200/people/man/1/_update
{
"doc": {
"name": "felix_update"
}
}
- 腳本方式: POST 127.0.0.1:9200/people/man/1/_update
{
"script" : {
"lang": "painless",
"inline": "ctx._source.age = params.age",
"params": {
"age": 26
}
}
}
刪除
- 刪除文檔id爲1的文檔: DELETE: 127.0.0.1:9200/people/man/1
- 刪除整個people索引: DELETE: 127.0.0.1:9200/people
普通查找
- 關鍵字: _search
- 查找文檔id爲3的文檔: GET: 127.0.0.1:9200/people/man/3
- 查找people索引下的所有數據/文檔: POST: 127.0.0.1:9200/people/_search
{
"query": {
"match_all": {
}
}
}
- 指定查詢結果的數量(size)和從哪一條處開始(from):
-
從第1條數據開始(from爲0),指定數量爲1(size爲1)
-
POST: 127.0.0.1:9200/people/_search
{ "query": { "match_all": { } }, "from": 1, "size": 1 }
-
- 指定查詢的屬性,查詢"name"爲felix_1的文檔
- POST: 127.0.0.1:9200/people/_search (精準匹配,非模糊匹配)
{ "query": { "match": { "name": "felix_1" } } }
- POST: 127.0.0.1:9200/people/_search (精準匹配,非模糊匹配)
- 指定結果的順序, 按"age"屬性降序排
- POST: 127.0.0.1:9200/people/_search
{ "query": { "match_all": { } }, "sort": [ { "age": { "order": "desc" } } ] }
- POST: 127.0.0.1:9200/people/_search