說明:當前所有示例均使用Kibana執行,如果未安裝,可以選擇使用Postman執行測試
#數據寫入
PUT /kevin/doc/4
{
"name":"kevin",
"age":30
}
PUT /kevin/doc/8
{
"name":"kevin",
"age":26,
"id":1
}
PUT /kevin/doc/10
{
"name":"kevin",
"age":25,
"id":2
}
PUT /kevin/doc/2
{
"name":"kevin2",
"age":22,
"id":3
}
PUT /kevin/doc/3
{
"name":"kevin3",
"age":23,
"id":4
}
PUT /ding/doc/1
{
"name":"ding",
"age":18,
"id":5
}
#查詢所有索引
GET /_search
GET /_all/_search?size=0
GET kevin/_search
{
"query": {
"match_all": {}
}
}
#查詢指定索引
GET /kevin/_search
#查詢多個指定索引
GET /ding,kevin/_search?q=name:kevin
#簡單查詢-size為0
GET /kevin/_search
{
"from":1,
"size":0
}
#簡單條件查詢(允許單個值)
GET /kevin/_search
{
"query" : {
"term" : {
"name":"kevin"
}
},
"from":1,
"size":10
}
#簡單條件查詢(允許多個值)
GET /kevin/_search
{
"query" : {
"terms" : {
"age":[23,22]
}
}
}
#range簡單使用
#可使用條件:from, lt, lte, gt, gte,boost,format,time_zone
GET /kevin/_search
{
"query" : {
"range" : {
"age":{"gte": 22, "lte": 23}
}
},
"from": 0, "size": 20
}
#bool簡單使用:用於符合條件的聯合使用
GET /kevin/_search
{
"query" : {
"bool" : {
"must": [
{
"term" : {
"name":"kevin"
}
}
],
"must_not": [
{
"term" : {
"_id":"4"
}
}
],
"filter": {
"range": {
"age": {"from":26}
}
}
}
},
"from":0, "size": 2
}
#sort簡單使用
GET /kevin/_search
{
"sort": [
{
"age": {
"order": "asc"
},
"id": {
"order": "desc"
}
}
]
}
#排序sort_mode_option支持:
#min,max,sum,avg,median,
#1.准備數據
PUT /price/doc/1
{
"name":"shop1",
"price":[3,3,9]
}
PUT /price/doc/2
{
"name":"shop1",
"price":[5,5,7]
}
PUT /price/doc/3
{
"name":"shop1",
"price":[6,6,6]
}
#2.查詢示例:
GET /price/_search
{
"sort": [
{
"price": {
"order": "desc",
"mode": "min"
}
}
]
}
GET /price/_search
{
"sort": [
{
"price": {
"order": "desc",
"mode": "max"
}
}
]
}
#Elasticsearch還支持按一個或多個嵌套對象中的字段排序。
#嵌套字段排序支持在現有排序選項之上有以下參數
#1.nested_path (嵌套對象中的直接字段:必須),
#2.nested_filter (嵌套路徑內的內部對象應與其匹配的過濾器)
#1.准備數據
PUT /shop/doc/1
{
"name":"shop1",
"price": {
"total_price":10,
"actual_price":6
},
"product":{
"price":1,
"quantity":[5,6]
}
}
PUT /shop/doc/2
{
"name":"shop2",
"price": {
"total_price":6,
"actual_price":5
},
"product":{
"price":1,
"quantity":[4,6]
}
}
PUT /shop/doc/3
{
"name":"shop3",
"price": {
"total_price":3,
"actual_price":7
},
"product":{
"price":1,
"quantity":[1,2]
}
}
DELETE /shop
#2.查詢示例(存在問題-需要nested類型):
GET /shop/_search
{
"sort": [
{
"product.quantity": {
"order": "desc",
"nested_path": "product"
}
}
]
}
#查詢指定字段(只包含 name 字段)
GET /kevin/_search
{
"_source": {
"includes": ["name"]
}
}