ElasticSearch Rest style operation (two) document operation
1. Basic operation
1.1, add data
PUT /kuangshen/user/1
{
"name":"狂神说",
"age":23,
"desc":"一顿操作猛如虎,一看工资2500",
"tags":["技术宅","暖男","直男"]
}
1.2, get data GET
GET kuangshen/user/1
1.3, update data PUT
PUT /kuangshen/user/3
{
"name":"李四233",
"age":30,
"desc":"mmp,不知道如何形容",
"tags":["靓女","旅游","唱歌"]
}
1.4, update data POSt _update, recommended
POST /kuangshen/user/1/_update
{
"doc":{
"name":"好先生"
}
}
1.5, simple search
GET kuangshen/user/_search?q=name:好先生
2. Advanced operation
2.1, basic query
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
}
}
2.2, result filtering
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
},
"_source": ["name","desc"]
}
2.3 Sort
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
2.4, paging
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 0,
"size":1
}
2.5, multi-condition query
must (and)
GET kuangshen/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "先生"
}
},{
"match": {
"age": 23
}
}
]
}
}
}
should (or)
GET kuangshen/user/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"name": "先生"
}
},{
"match": {
"age": 23
}
}
]
}
}
}
must_not (not)
GET kuangshen/user/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"age": 23
}
}
]
}
}
}
filter (filter)
GET kuangshen/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "先生"
}
}
],
"filter": [
{
"range": {
"age": {
"gte": 10
}
}
}
]
}
}
}
2.6, multi-condition matching
GET kuangshen/user/_search
{
"query": {
"match": {
"tags":"男 技术"
}
}
}
2.7, precise query
note: The keyword field type will not be parsed by the tokenizer
GET kuangshen/user/_search
{
"query": {
"term": {
"name":"先"
}
}
}
Multi-condition query
GET kuangshen/user/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"name": {
"value": "好"
}
}
},{
"term": {
"tags": {
"value": "技术"
}
}
}
]
}
}
}
2.7, highlight query
GET kuangshen/user/_search
{
"query": {
"match": {
"name": "先生"
}
},
"highlight": {
"fields": {
"name":{}
}
}
}
Custom highlight label
GET kuangshen/user/_search
{
"query": {
"match": {
"name": "先生"
}
},
"highlight": {
"pre_tags": "<p class='key'>",
"post_tags": "</p>",
"fields": {
"name":{}
}
}
}
Special thanks: Mad God said Java