Elasticearch 查询详解 (二)
生活随笔
收集整理的這篇文章主要介紹了
Elasticearch 查询详解 (二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 Rest風格說明
- 1.1 創建一個索引
- 1.1.1 字段類型:
- 1.1.2 獲取索引信息
- 1.1.3 查看索引默認信息
- 1.2 其他 _cat
- 1.2 修改
- 1.2.1 PUT覆蓋
- 1.2.2 POST更新
- 1.3 刪除索引
- 2 文檔基本操作
- 2.1 基本操作
- 2.1.1 添加數據
- 2.1.2 查數據
- 2.1.3 更新數據 PUT
- 2.1.4 更新數據 POST (推薦)
- 2.2 復雜查詢
- 2.2.1 模糊查詢
- 2.2.2 _source: 結果過濾
- 2.2.3 sort: 排序
- 2.2.4 分頁
- 2.2.5 bool 多條件精確查詢
- 2.2.6 范圍過濾
- 2.2.7 匹配多個 條件多條件 空格隔開
- 2.2.8 精確查詢
- 2.2.9 精確查詢 多個值
- 2.2.10 高亮查詢
官網:
https://www.elastic.co/guide/en/enterprise-search-clients/index.html
1 Rest風格說明
一種軟件架構風格,而不是標準,知識提供了一組設計原則和約束條件。它主要用于客戶端和服務器交互類的軟件。基于這個風格設計的軟件可以更簡潔,更改有層次,易于實現緩存的機制。
| PUT | localhost:9200/索引名稱/類型名稱/文檔id | 創建文檔(指定文檔id) |
| POST | localhost:9200/索引名稱/類型名稱 | 修改文檔(隨機文檔id) |
| POST | localhost:9200/索引名稱/類型名稱/文檔id/_update | 修改文檔 |
| DELETE | localhost:9200/索引名稱/類型名稱/文檔id | 刪除文檔 |
| GET | localhost:9200/索引名稱/類型名稱/文檔id | 查詢文檔通過文檔id |
| POST | localhost:9200/索引名稱/類型名稱/_search | 查詢所有數據 |
1.1 創建一個索引
localhost:9200/索引名稱/類型名稱/文檔id
PUT /test1/type1/1 {"name": "有勇氣的牛排","age": 18 }1.1.1 字段類型:
字符串類型:text、keyword
數值類型:long、integer、short、byte、double、float、half_float、scaled_float
日期類型:date
布爾類型:boolean
二進制類型:binary
1.1.2 獲取索引信息
# 獲取當前索引信息 GET test21.1.3 查看索引默認信息
PUT /test3/_doc/1 {"name":"有勇氣的牛排","age": 18,"birthday": "2010-05-20" } GET test31.2 其他 _cat
# _cat 查看默認配置 # 獲取數據庫健康值 GET _cat/health1.2 修改
1.2.1 PUT覆蓋
重復執行
PUT /test3/_doc/1 {"name":"有勇氣的牛排","age": 18,"birthday": "2010-05-20" }1.2.2 POST更新
# 創建/更新 PUT /test3/_doc/1 {"name":"有勇氣的牛排","age": 18,"birthday": "2010-05-20" }# 更新 POST /test3/_doc/1/_update {"doc":{"name": "大哥"} }1.3 刪除索引
更具路徑判斷刪除索引還是文檔
# 刪除指定索引 DELETE test12 文檔基本操作
2.1 基本操作
2.1.1 添加數據
PUT /vitcloud/user/2 {"name":"大漂亮","age": 17,"desc": "女主","tags":["旅游","輕音樂","彈琴"] }2.1.2 查數據
GET /vitcloud/user/2# 精確搜索 GET /vitcloud/user/_search?q=name:黑客2.1.3 更新數據 PUT
如果不傳值,會被覆蓋
PUT /vitcloud/user/2 {"name":"大漂亮2號","age": 17,"desc": "女主","tags":["旅游","輕音樂","彈琴"] }2.1.4 更新數據 POST (推薦)
POST /vitcloud/user/1/_update {"doc":{"name":"大漂亮2號"} }2.2 復雜查詢
2.2.1 模糊查詢
GET /vitcloud/user/_search {"query":{"match": {"name": "有勇氣"}} }2.2.2 _source: 結果過濾
GET /vitcloud/user/_search {"query":{"match": {"name": "有勇氣"}},"_source":["name","desc"] }2.2.3 sort: 排序
GET /vitcloud/user/_search {"query":{"match": {"name": "有勇氣"}},"sort": [{"age":{"order": "desc"}}] }2.2.4 分頁
/search/{current}/{pagesize}
from: 從第幾條開始
size: 顯示多少條
2.2.5 bool 多條件精確查詢
must:都滿足
must_not:不滿足的
should:滿足一個即可
2.2.6 范圍過濾
- gt: 大于
- lt: 小于
- gte: 大于等于
- lte: 小于等于
2.2.7 匹配多個 條件多條件 空格隔開
GET /vitcloud/user/_search {"query":{"match": {"tags": "游 音樂"}} }2.2.8 精確查詢
term查詢是直接通過倒排索引指定的詞條進程精確的查找
關于分詞
- term :直接查詢精確的
- mathc:會使用分詞器解釋(先分析文檔,然后通過分析的文檔進行查詢)
keyword不會被分詞
2.2.9 精確查詢 多個值
# 添加數據 PUT /vitcloud/_doc/1 {"t1": "22","t2": "2022-02-22" }PUT /vitcloud/_doc/2 {"t1": "33","t2": "2022-02-23" } GET vitcloud/_search {"query": {"bool": {"should": [{"term": {"t1": "22"}},{"term": {"t1": "33"}}]}} }2.2.10 高亮查詢
默認為em標簽
GET vitcloud/user/_search {"query": {"match":{"name": "有勇氣"}},"highlight": {"fields": {"name":{}}} }自定義標簽
GET vitcloud/user/_search {"query": {"match":{"name": "有勇氣"}},"highlight": {"pre_tags": "<p class='key' style='color:red'>","post_tags": "</p>", "fields": {"name":{}}} }來源
狂神說:https://www.bilibili.com/video/BV17a4y1x7zq
總結
以上是生活随笔為你收集整理的Elasticearch 查询详解 (二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticearch 安装 基础介绍
- 下一篇: 轻量型日志采集器 Filebeat基本使