Just some snippets for experimenting with ElasticSearch
GET _search
{
"query": {
"match_all": {}
}
}
POST /exp/experiments/
{
"name" :"Blue experiment",
"state": "running",
"message": [
{
"txt" : "start",
"ts": "2018-01-01T07:30:01",
"status" : "received"
}
]
}
POST /exp/experiments/
{
"name" : "Green experiment",
"state": "running",
"message": [
{
"txt" : "start",
"ts": "2018-01-02T07:30:01",
"status" : "received"
}
]
}
GET /exp/experiments/_search
# PUT /exp/experiments/1234
# same as POST but specifies the _id of the document
# POST and PUT both "index" a document
# DELETE /exp deleting the whole index
POST /exp/experiments/_bulk
{ "index" : { "_id" : 1 }}
{...}
{ "index" : { "_id" : 2 }}
{...}
GET /exp/experiments/_search
{
"query": {
"match": {
"name": "experiment"
}
}
}
# match looking for single word
# match_phrase looking for the phrase (multiple words) in that order
PUT /test/_doc/1
{
"counter": 0,
"name" : "Foo",
"tags" : ["apple", "banana"]
}
POST /test/_doc/1/_update
{
"script" : {
"source": "ctx._source.counter += params.count",
"lang": "painless",
"params" : {
"count" : 4
}
}
}
POST /test/_doc/1/_update
{
"script" : {
"source": "ctx._source.tags.add(params.tag)",
"lang": "painless",
"params" : {
"tag" : "peach"
}
}
}
DELETE /test
GET /test/_doc/_search
GET /test/_mapping/_doc
POST /test/_doc/1/_update
{
"script" : "ctx._source.new_field = 'value_of_new_field'"
}
POST /test/_doc/1/_update
{
"script" : "ctx._source.remove('ppl')"
}
POST /test/_doc/1/_update
{
"script" : "ctx._source.tags._index.0 = 'xxx'"
}
POST /test/_doc/1/_update
{
"script" : "ctx._source.ppl = params.people",
"params" : {
"people" : "xxx"
}
}
POST /test/_update_by_query
{
"script": {
"source": "ctx._source.counter++",
"lang": "painless"
},
"query": {
"term": {
"_id": 1
}
}
}
PUT /test/_doc/2
{
"counter": 0,
"name" : "Foo",
"internal" : {
"counter" : 0
},
"tags" : ["apple", "banana"],
"ppl" : [
{"name": "Foo", "age" : 23},
{ "name" : "Bar", "age" : 19}
]
}
POST /test/_update_by_query
{
"script": {
"source": "ctx._source.internal.counter++",
"lang": "painless"
},
"query": {
"term": {
"_id": 2
}
}
}
POST /test/_update_by_query
{
"script": {
"source": "ctx._source.ppl.0.age++",
"lang": "painless"
},
"query": {
"term": {
"_id": 2
}
}
}
GET /test/_doc/_search
POST /test/_update_by_query
{
"script": {
"source": "ctx._source.ppl.add(params.person)",
"lang": "painless",
"params": {
"person": {
"name" : "Zorg",
"age" : 100
}
}
},
"query": {
"term": {
"_id": 2
}
}
}
POST /test/_update_by_query
{
"script": {
"source": "ctx._source.ppl.remove(0)",
"lang": "painless"
},
"query": {
"term": {
"_id": 2
}
}
}
POST /test/_update_by_query
{
"script": {
"source": "ctx._source.ppl.0.address = 'Middle Earth'",
"lang": "painless"
},
"query": {
"term": {
"_id": 2
}
}
}