帶你使用Elasticsearch中提供的Rest風格API, 快來快來, 不要錯過哦~~

Rest風格API

elasticsearch提供了Rest風格的API,即http請求接口mysql

1. 基本概念

Elasticsearch也是基於Lucene的全文檢索庫,本質也是存儲數據,不少概念與MySQL相似的。sql

索引(indices) Databases數據庫
類型(type) Table數據庫
文檔(Document) Row行
字段(Field) Columns
  • 索引庫(indices):indices是index的複數,表明許多的索引
  • 類型(type):類型是模擬mysql中的table概念,一個索引庫下能夠有不一樣類型的索引,好比商品索引,訂單索引,其數據格式不一樣。不過這會致使索引庫混亂,所以將來版本中會移除這個概念。
  • 文檔(document):存入索引庫原始的數據。好比每一條商品信息,就是一個文檔。
  • 字段(field):文檔中的屬性。
  • 映射配置(mappings):字段的數據類型、屬性、是否索引、是否存儲等特性。

2. 索引操做

2.1 建立索引:put請求

put book
{
	"settings":{
		"number_of_shards":1,          /*分片數量*/
		"number_of_replicas":0         /*副本數量*/
	}
}

2.2 查看索引:get請求

get 索引庫名數據庫

  • 咱們可使用*來查詢全部索引庫

2.3 刪除索引:delete請求

delete 索引庫名json

3.映射配置

建立索引庫,就至關於mysql建立「數據庫」。接着咱們來配置映射,至關於建立「表結構」。app

  • 在ElasticSearch中,咱們常配置:
    • 字段的數據類型
    • 是否要存儲
    • 是否要索引
    • 是否分詞
    • 分詞器是什麼

3.1 建立映射關係

PUT /索引庫名/_mapping/類型名稱
{
  "properties": {
    "字段名": {
      "type": "類型",
      "index": true,
      "store": true,
      "analyzer": "分詞器"
    }
  }
}
  • 類型名稱:基本概念中所說的type,相似於數據庫中的表
    • 字段名: 相似於數據庫中的列名。
      • type:類型,能夠是text、long、short、date、integer、object等
      • index:是否索引,默認爲true
      • store:是否存儲,默認爲false
      • analyzer:分詞器,這裏的‘ik_max_word’ 即便用ik分詞器
  • 實例
/* 1.先建立索引 */
put czxy

/* 2.建立映射關係 */
put czxy/_mapping/book
{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "images": {
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "float"
    }
  }
}

3.2 查看映射關係

get /索引庫名/_mappingelasticsearch

3.3 字段屬性詳解

1) type

  • Elasticsearch中支持的數據類型很是豐富
    • String 類型,又分爲兩種:
      • text:可分詞,不可參與聚合
      • keyword:不可分詞,數據會做爲完整字段進行匹配,能夠參與集合
    • Numerical:數值類型,分兩類:
      • 基本數據類型:long、interger、short、byte、double、float、half_float
      • 浮點數的高進度類型:scaled_float
      • 須要指定一個精度因子,好比10或100。elasticsearch會把真實值乘以這個因子後存儲,取出時再還原。
    • Date:日期類型
      • elasticsearch能夠對日期格式化爲字符串存儲,可是建議咱們存儲爲毫秒值,存儲爲long,節省空間。

2)index

index影響字段的索引狀況.net

  • true:字段會被索引,則能夠用來進行搜索。默認值就是true;
  • false:字段不會被索引,不能用來搜索。

index的默認值就是true,也就是說你不進行任何配置,全部字段都會被索引。可是有些字段是咱們不但願被索引的,好比商品的圖片信息,就須要手動設置index爲false。code

3)store

是否將數據進行額爲存儲。blog

Elasticsearch在建立文檔索引時,會將文檔中的原始數據備份,保存到一個叫作‘_source’的屬性中。並且咱們能夠經過過濾‘ _source’來選擇哪些要顯示,哪些不顯示。索引

而若是設置store爲true,就會在‘_source’之外額爲存儲一份數據,多餘,所以通常咱們都會將store設置爲false,事實上,store的默認值就是false

備註(展現無查詢操做與聚合操做)後期更新
相關文章
相關標籤/搜索