安装
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文件夹,或者从原始解压包直接复制两份.
- 在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