Es入門(一)

安裝

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文件夾,或者從原始解壓包直接複製兩份.

增刪改查

  • 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"
      		}
      	}
      }
      
  • 指定結果的順序, 按"age"屬性降序排
    • POST: 127.0.0.1:9200/people/_search
      {
      	"query": {
      		"match_all": {
      		}
      	},
      	"sort": [
      		{
      			"age": {
      				"order": "desc"
      			}
      		}
      	]
      }
      

聚合查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章