创建索引
PUT /index/type/id
{
"name": "名称"
}
导入数据
(1) 导入单条数据
POSt index/type/id
数据(json)
(2)批量导入数据
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@/opt/accounts.json"(具体说明查看该文章[es基础命令](https://segmentfault.com/a/1190000043338294))
查询操作
(1)查询所有
GET /index/_search
{
"query": { "match_all": {} }
}
(2)返回字段说明
1. took – Elasticsearch运行查询所花费的时间(以毫秒为单位)
2. timed_out –搜索请求是否超时_shards - 搜索了多少个碎片,以及成功,失败或跳过了多少个碎片的细目分类。
3. max_score – 找到的最相关文档的分数
4. hits.total.value - 找到了多少个匹配的文档
5. hits.sort - 文档的排序位置(不按相关性得分排序时)
6. hits._score - 文档的相关性得分(使用match_all时不适用)
(3)添加排序查询
GET /index/_search
{
"query": { "match_all": {} },
"sort": [
{ "排序字段": "asc" }
]
}
asc 正序
desc 倒序
(4)分页查询
GET /index/_search
{
"query": { "match_all": {} },
"from": 0,
"size": 10
}
from 页数 size 分页大小
(5) 指定查询字段
GET /index/_search
{
"query": { "match": { "字段": "查询条件" } }
}
(6)模糊查询
GET /index/_search
{
"query": { "match_phrase": { "字段": "查询条件" } }
}
(7)多条件查询bool的使用
GET /index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "字段1": "条件1" } }
],
"must_not": [
{ "match": { "字段2": "条件2" } }
]
}
}
}
必须包含字段1里的条件,但排除字段2的条件
同时还有should filter(高度匹配)
(8)范围查询
GET index/_search
{
"query": {
"range": {
"查询字段": {
"gte": 数值1,
"lte": 数值2
}
}
}
}
范围查询接收以下参数:
gte:大于等于
gt:大于
lte:小于等于
lt:小于
(9)聚合查询 Aggregation
GET /index/_search
{
"size":返回大小,
"aggs": {
"group_by_state": {
"terms": {
"field": "聚合字段.keyword"
}
}
}
}
(10)聚合+平均
GET /index/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword"
},
"aggs": {
"average_平均字段": {
"avg": {
"field": "平均字段"
}
}
}
}
}
}
(11)聚合+平均+排序
GET /bank/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword",
"order": {
"average_balance": "desc"
}
},
"aggs": {
"average_balance": {
"avg": {
"field": "balance"
}
}
}
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。