日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Elasticearch 查询详解 (二)

發布時間:2025/5/22 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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風格說明

一種軟件架構風格,而不是標準,知識提供了一組設計原則和約束條件。它主要用于客戶端和服務器交互類的軟件?;谶@個風格設計的軟件可以更簡潔,更改有層次,易于實現緩存的機制。

methodurl地址描述
PUTlocalhost:9200/索引名稱/類型名稱/文檔id創建文檔(指定文檔id)
POSTlocalhost:9200/索引名稱/類型名稱修改文檔(隨機文檔id)
POSTlocalhost:9200/索引名稱/類型名稱/文檔id/_update修改文檔
DELETElocalhost:9200/索引名稱/類型名稱/文檔id刪除文檔
GETlocalhost:9200/索引名稱/類型名稱/文檔id查詢文檔通過文檔id
POSTlocalhost: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

# 創建規則 索引+字段 PUT /test2 {"mappings": {"properties": {"name":{"type": "text"},"age":{"type": "long"},"birthday":{"type": "date"}}} }

1.1.2 獲取索引信息

# 獲取當前索引信息 GET test2

1.1.3 查看索引默認信息

PUT /test3/_doc/1 {"name":"有勇氣的牛排","age": 18,"birthday": "2010-05-20" }

GET test3

1.2 其他 _cat

# _cat 查看默認配置 # 獲取數據庫健康值 GET _cat/health

1.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 test1

2 文檔基本操作

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: 顯示多少條

GET /vitcloud/user/_search {"query":{"match": {"name": "有勇氣"}},"_source":["name","desc"],"from": 0,"size": 2 }

2.2.5 bool 多條件精確查詢

must:都滿足
must_not:不滿足的
should:滿足一個即可

GET /vitcloud/user/_search {"query":{"bool": {"must": [{"match": {"name": "有勇氣"}},{"match": {"tags": "旅游"}}]}} }

2.2.6 范圍過濾

  • gt: 大于
  • lt: 小于
  • gte: 大于等于
  • lte: 小于等于
GET /vitcloud/user/_search {"query":{"bool": {"must": [{"match": {"name": "有勇氣"}},"filter":{"range":{"age":{"gt":10,"lt":30}}}]}} }

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 查询详解 (二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。