带你使用Elasticsearch中提供的Rest风格API, 快来快来, 不要错过哦~~
生活随笔
收集整理的這篇文章主要介紹了
带你使用Elasticsearch中提供的Rest风格API, 快来快来, 不要错过哦~~
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Rest風格API
elasticsearch提供了Rest風格的API,即http請求接口
1. 基本概念
Elasticsearch也是基于Lucene的全文檢索庫,本質也是存儲數據,很多概念與MySQL類似的。
| 類型(type) | Table數據庫 |
| 文檔(Document) | Row行 |
| 字段(Field) | Columns |
- 索引庫(indices):indices是index的復數,代表許多的索引
- 類型(type):類型是模擬mysql中的table概念,一個索引庫下可以有不同類型的索引,比如商品索引,訂單索引,其數據格式不同。不過這會導致索引庫混亂,因此未來版本中會移除這個概念。
- 文檔(document):存入索引庫原始的數據。比如每一條商品信息,就是一個文檔。
- 字段(field):文檔中的屬性。
- 映射配置(mappings):字段的數據類型、屬性、是否索引、是否存儲等特性。
2. 索引操作
2.1 創建索引:put請求
- kibana的安裝使用看這個博客:elasticsearch入門(IKibana安裝)
- 使用kibana創建索引:
- 請求方式:PUT
- 請求路徑:索引庫名
- 請求參數:json格式
2.2 查看索引:get請求
get 索引庫名
- 我們可以使用*來查詢所有索引庫
2.3 刪除索引:delete請求
delete 索引庫名
3.映射配置
創建索引庫,就相當于mysql創建“數據庫”。接著我們來配置映射,相當于創建“表結構”。
- 在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分詞器
- 字段名: 類似于數據庫中的列名。
- 實例
3.2 查看映射關系
get /索引庫名/_mapping
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,節省空間。
- String 類型,又分為兩種:
2)index
index影響字段的索引情況
- true:字段會被索引,則可以用來進行搜索。默認值就是true;
- false:字段不會被索引,不能用來搜索。
index的默認值就是true,也就是說你不進行任何配置,所有字段都會被索引。但是有些字段是我們不希望被索引的,比如商品的圖片信息,就需要手動設置index為false。
3)store
是否將數據進行額為存儲。
Elasticsearch在創建文檔索引時,會將文檔中的原始數據備份,保存到一個叫做‘_source’的屬性中。而且我們可以通過過濾‘ _source’來選擇哪些要顯示,哪些不顯示。
而如果設置store為true,就會在‘_source’以外額為存儲一份數據,多余,因此一般我們都會將store設置為false,事實上,store的默認值就是false。
總結
以上是生活随笔為你收集整理的带你使用Elasticsearch中提供的Rest风格API, 快来快来, 不要错过哦~~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考研初试成绩公布时间查询
- 下一篇: 写一个简单的node.js项目