Es入门(一)

安装

es安装

  • 前提: 需要java运行环境
    • mac下安装java: 官网下载安装包dmg文件即可
    • win 下安装java:
  • mac / linux系统下安装es : 慕课网es入门
    • mac下的dmg安装包安装的应用程序在/Applications里,自己下的其它安装包(比如zip,tar)一般我习惯装在家目录~/Applications里
  • win下安装es:

插件安装

  • head 插件 : github地址
    • 描述:
    • 前提: 安装node与npm
    • 注: npm下载完成后可以替换为淘宝镜像 npm config set registry https://registry.npm.taobao.org
      • 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"
      			}
      		}
      	]
      }
      

聚合查询

猜你喜欢

转载自blog.csdn.net/zhaofeiyue1234/article/details/83658208