elasticsearch 操作实例技巧(六)
1.查看健康状态
详细内容
curl '192.168.211.155:9200/_cat/health?v'
简单列表
curl '192.168.211.155:9200/_cat/health'
状态:
绿色:所有功能正常
黄色:部分副本未分配,但功能正常
红色: 部分数据不可用,小部分功能可用,但数据存在丢失情况
2.列出节点
curl '192.168.211.155:9200/_cat/nodes?v'
3.列出索引
curl '192.168.211.155:9200/_cat/indices?v'
4.创建索引
curl -XPUT '192.168.211.155:9200/customer?pretty'
{
"acknowledged" : true
}
5.创建文档
#index customer
#type external
#document id 1 content "name:John doe"
curl -XPUT '192.168.211.155:9200/customer/external/2?pretty' -d '
{
"name": "John Doe"
}'
{
"_index" : "customer",
"_type" : "external",
"_id" : "1",
"_version" : 1,
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"created" : true
}
curl -XPUT '192.168.211.155:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'
Post方式不带ID值
curl -XPOST '192.168.211.155:9200/customer/external?pretty' -d '
{
"name": "Jane Doe"
}'
6.查看文档信息
curl -XGET '192.168.211.155:9200/customer/external/1?pretty'
{
"_index" : "customer",
"_type" : "external",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"name" : "John Doe"
}
}
6.删除索引
curl -XDELETE '192.168.211.155:9200/customer?pretty'
{
"acknowledged" : true
}
curl '192.168.211.155:9200/_cat/indices?v'
curl -X<REST Verb><Node>:<Port>/<Index>/<Type>/<ID>
7.查看指定索引
curl '192.168.211.155:9200/customer?pretty'
8.更新文档
curl -XPOST '192.168.211.155:9200/customer/external/1/_update?pretty' -d '
{
"doc": { "name": "Jane Doe" }
}'
9.更新的方式,添加字段
curl -XPOST '192.168.211.155:9200/customer/external/1/_update?pretty' -d '
{
"doc": { "name": "Jane Doe", "age": 20 }
}'
查看文档:
curl -XGET '192.168.211.155:9200/customer/external/1?pretty'
10.删除文档
curl -XDELETE '192.168.211.155:9200/customer/external/2?pretty'
11.批量处理
curl -XPOST '192.168.211.155:9200/customer/external/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'
更新文档ID 为1 ,删除文档ID为 2
curl -XPOST '192.168.211.155:9200/customer/external/_bulk?pretty' -d '
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
'
12.批量导入json数据
本地的accounts.json数据包
curl -XPOST '192.168.211.155:9200/bank/account/_bulk?pretty' --data-binary "@accounts.json"
查看索引
curl '192.168.211.155:9200/_cat/indices?v'
13.搜索索引文档
curl '192.168.211.155:9200/bank/_search?q=*&pretty'
q=*,搜索所有文档
tooks, 毫秒
body 方式
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match_all": {} }
}'
多条件查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match_all": {} },
"size": 1
}'
查询11 - 20 条文档记录
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match_all": {} },
"from": 10,
"size": 10
}'
from : 从第几条开始,默认是0
size: 查询条数,类似 limit
排序查询,默认返回10条记录
curl -XPOST ‘192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match_all": {} },
"sort": { "balance": { "order": "desc" } }
}'
按balance 降序排序
14.查询指定字段内容
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match_all": {} },
"_source": ["account_number", "balance"]
}'
查询文档中 account_number,balance字段
15.字段匹配查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match": { "account_number": 20 } }
}'
模糊查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match": { "address": "mill" } }
}'
或查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": { "match": { "address": "mill lane" } }
}'
与查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
]
}
}
}'
非查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must_not": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
]
}
}
}'
组合查询
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must": [
{ "match": { "age": "40" } }
],
"must_not": [
{ "match": { "state": "ID" } }
]
}
}
}'
范围过滤
curl -XPOST '192.168.211.155:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must": { "match_all": {} },
"filter": {
"range": {
"balance": {
"gte": 20000,
"lte": 30000
}
}
}
}
}
}'
#只显示source数据
GET /hkqj/employee/1/_source
POST /_bulk { "delete": { "_index": "website", "_type": "blog", "_id": "123" }} <1> { "create": { "_index": "website", "_type": "blog", "_id": "123" }} { "title": "My first blog post" } { "index": { "_index": "website", "_type": "blog" }} { "title": "My second blog post" } { "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} } { "doc" : {"title" : "My updated blog post"} } <2>
概念 | 解释 |
映射(Mapping) | 数据在每个字段中的解释说明 |
分析(Analysis) | 全文是如何处理的可以被搜索的 |
领域特定语言查询(Query DSL) | Elasticsearch使用的灵活的、强大的查询语言 |