Elasticsearch也是基於Lucene的全文檢索庫,本質也是存儲數據,很多概念與MySQL類似的。
對比關係:
索引(indices)--------------------------------Databases 數據庫
類型(type)-----------------------------Table 數據表
文檔(Document)----------------Row 行
字段(Field)-------------------Columns 列
Elasticsearch具備以下特點:
- 分佈式,無需人工搭建集羣(solr就需要人爲配置,使用Zookeeper作爲註冊中心)
- Restful風格,一切API都遵循Rest原則,容易上手
- 近實時搜索,數據更新在Elasticsearch中幾乎是完全同步的。
另外,在SolrCloud中,有一些集羣相關的概念,在Elasticsearch也有類似的:
- 索引集(Indices,index的複數):邏輯上的完整索引
- 分片(shard):數據拆分後的各個部分
- 副本(replica):每個分片的複製
要注意的是:Elasticsearch本身就是分佈式的,因此即便你只有一個節點,Elasticsearch默認也會對你的數據進行分片和副本操作,當你向集羣添加新數據時,數據也會在新加入的節點中進行平衡。
創建索引:
- 請求方式:PUT
- 請求路徑:/索引庫名
- 請求參數:json格式:
```json
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
```
- settings:索引庫的設置
- number_of_shards:分片數量
- number_of_replicas:副本數量
刪除索引:
DELETE /heima
查看索引:
GET /heima