elasticsearch入门
elasticsearch入门
入门
单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。
Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。
下面的命令可以查看当前节点的所有 Index。
$ curl -X GET ‘http://localhost:9200/_cat/indices?v'
下面的命令可以列出每个 Index 所包含的 Type。
$ curl ‘localhost:9200/_mapping?pretty=true’
_cat命令查看状态
查看所有索引
1 |
|
$ curl localhost:9200/_cat/master?v
id host ip node
QG6QrX32QSi8C3-xQmrSoA 127.0.0.1 127.0.0.1 Manslaughter1
2
3
4
* help
每个命令都支持使用help参数,来输出可以显示的列:
GET _cat/master?help
id | | node id
host | h | host name
ip | | ip address
node | n | node name
1 |
|
GET /_cat/master?v
id host ip node
QG6QrX32QSi8C3-xQmrSoA 127.0.0.1 127.0.0.1 Manslaughter
GET /_cat/master?h=host,ip,node
127.0.0.1 127.0.0.1 Manslaughter1
2
3
4
5
6
#### `索引增删`
新建 Index,可以直接向 Elastic 服务器发出 PUT 请求。下面的例子是新建一个名叫weather的 Index。
```PUT /weather
服务器返回一个 JSON 对象,里面的acknowledged字段表示操作成功。
1 | { |
查看weather索引信息
1 | GET weather |
其中,number_of_replicas 是数据备份数,如果只有一台机器,设置为0;number_of_shards 是数据分片数,默认为5,有时候设置为3
获取设置信息
1 | #获取weather的设置 |
修改副本数量:
1 | PUT weather/_settings |
新增记录
向指定的 /Index/Type 发送 PUT 请求,就可以在 Index 里面新增一条记录。比如,向/accounts/person发送请求,就可以新增一条人员记录。
1 | PUT accounts/job/1 |
服务器返回的 JSON 对象,会给出 Index、Type、Id、Version 等信息。
1 | { |
新增记录的时候,也可以不指定 Id,这时要改成 POST 请求。
1 | POST /accounts/job |
服务器返回的 JSON 对象里面,_id字段就是一个随机字符串。
1 | { |
查询记录
使用 GET 方法,直接请求/Index/Type/_search,就会返回所有记录。
1 | #查询该索引下所有文档 |
查询返回结果中字段含义:
1 | took: 表示该操作的耗时(ms) |
全文搜索
Elastic 的查询非常特别,使用自己的查询语法,要求 GET 请求带有数据体。
1 | GET accounts/job/_search |
上面代码使用 Match 查询,指定的匹配条件是desc字段里面包含”师”这个词。返回结果如下:
1 | { |
Elastic 默认一次返回10条结果,可以通过size字段改变这个设置。
1 | GET accounts/job/_search |
上面代码指定,每次只返回一条结果。
还可以通过from字段,指定位移。
1 | GET accounts/job/_search |
如果有多个搜索关键字, Elastic 认为它们是or关系
1 | GET accounts/job/_search |
上面代码搜索的是软件 or 系统。
如果要执行多个关键词的and搜索,必须使用布尔查询。
1 | GET accounts/job/_search |
修改记录 (直接覆盖)
1 | PUT accounts/job/1 |
更新记录后,返回结果中有几个字段发生改变:1
2
3"_version" : 2,
"result" : "updated",
"created" : false
版本(version)从1变成2,操作类型(result)从created变成updated,created字段变成false,因为这次不是新建记录。
删除记录
1 | #删除一条记录(文章), |
本文作者 : 对六
原文链接 : http://duiliuliu.github.io/2018/07/25/2018-07-25-elasticsearch入门/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
你我共勉!