REST API and installation

run bin/elasticsearch in the downloaded folder
by default uses 9200 port

Terminology comparing to sql

cluster - server pool
node - server
index - database
types - table
document - row
fields - col

Check status

cluster health curl -XGET 'localhost:9200/_cat/health?v&pretty'
green - good
y
yellow - replicas are not yet allocated; can happen for initial stage where only one node is in the cluster
red - some data are missing, partially working with search request since data still exist lol

Actions

CRUD and search operations can be performed over the indexes
pattern - <REST Verb> /<Index>/<Type>/<ID>

  • List indices _cat/health?
  • create index object customer PUT /customer/1?pretty or POST request with specified id
  • add stuff to index customer; auto add index if not exist
curl -XPUT 'localhost:9200/customer/external/1?pretty&pretty' -H 'Content-Type: application/json' -d'
{
  "name": "John Doe"
}
'

stuff is refer to as document
type external must be specified

  • delete similar
  • update basically change index attribute if attribute exist or, add new by
{
  "doc": { "name":  "Joe", "age": 20 }
}
  • script execution (where ctx._source means current source document
{
  "script": "ctx._source.age += 5" 
}
  • batch - _bulk api /customer/external/_bulk
{"index": {"_id": "1"}}
{"name": "Joe" }
...
{"update": ..
{"doc": {..}}

Search operations

  • paging, sorting, filtering, scripting, aggregations etc
    _search endpoint - simple calls to api with post request, no stateful database cursor or anything
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容