Elasticsearch 基礎速成 5 步跑通索引、文檔、映射與查詢

1 · 準備工作

  • 運行環境

    curl -fsSL https://elastic.co/start-local | sh   # 一條命令拉起本地單節點集群
    # 瀏覽器打開 http://localhost:5601 進入 Kibana → DevTools → Console
    

    已有云端或 Serverless 集群可以直接跳到第 2 步。

  • 操作界面
    以下所有請求均可在 Kibana → DevTools → Console 里粘貼執行。
    Console 還能一鍵轉換成 cURL / Python / Go 等代碼片段,方便集成。

2 · 創建索引 books

PUT /books
  • 返回 {"acknowledged": true, "shards_acknowledged": true, …} 表示創建成功。
  • 若索引不存在也可在插入文檔時自動創建,不過手動顯式建索引能提前配置分片、副本及映射。

3 · 寫入文檔

3.1 單條寫入

POST /books/_doc
{"name": "Snow Crash","author": "Neal Stephenson","release_date": "1992-06-01","page_count": 470
}
  • ES 會自動生成 _id 并立刻可搜索(近實時,默認 1 s 刷新)。

3.2 批量寫入(Bulk)

POST /_bulk
{ "index": { "_index": "books" } }
{"name":"1984","author":"George Orwell","release_date":"1949-06-08","page_count":328}
{ "index": { "_index": "books" } }
{"name":"Brave New World","author":"Aldous Huxley","release_date":"1932-06-01","page_count":268}
…
  • NDJSON:一行動作元數據 + 一行文檔,配對出現。
  • 批量導入效率遠高于逐條 POST,生產環境建議控制在 5 MB / 5000 條左右一批。

4 · 映射(Mapping)入門

4.1 動態映射(Dynamic)

默認情況下,ES 會 自動推斷字段類型 并寫入 mapping。
下面插入一個帶新字段 language 的文檔:

POST /books/_doc
{"name": "The Great Gatsby","author": "F. Scott Fitzgerald","release_date": "1925-04-10","page_count": 180,"language": "EN"
}

查看 mapping:

GET /books/_mapping

可見 language 已被標記為 text 類型。

優點:零配置、快速迭代
缺點:類型不可控,易出現 keyword/text 混用、日期被識別成 text 等問題

4.2 顯式映射(Explicit)

PUT /my-explicit-mappings-books
{"mappings": {"dynamic": false,             # 禁用自動識別"properties": {"name":         { "type": "text" },"author":       { "type": "text" },"release_date": { "type": "date",    "format": "yyyy-MM-dd" },"page_count":   { "type": "integer" }}}
}
  • 未聲明字段仍會存進 _source但無法搜索/聚合
  • 若想同時兼顧靈活性,可保留 dynamic: true,只對關鍵字段做顯式類型聲明,形成 混合策略

5 · 第一次搜索

5.1 全量查詢

GET /books/_search

默認返回前 10 條文檔,含 _score_source 等元信息。

5.2 match 全文檢索

GET /books/_search
{"query": {"match": {"name": "brave"}}
}
  • match 會自動分詞,Brave New WorldBrave-something 均可命中。
  • 若需精確匹配未分詞文本可改用 term 或將字段映射為 keyword

6 · 可選:刪除索引重來

DELETE /books
DELETE /my-explicit-mappings-books

? 不可恢復:文檔、分片、映射將永久丟失,謹慎操作。

小結 & 下一步

已掌握推薦深入
? 創建/刪除 Index分片、副本、ILM 生命周期
? 單條 & Bulk 寫入Ingest Pipeline、動態模板
? 動態 vs 顯式映射多字段(fields)/ keyword + text 組合
? 基礎搜索復合查詢(bool)、分頁、高亮、聚合

當你能熟練寫出 Bulk + 顯式映射的索引腳本、并用 match/bool 檢索到想要的書籍,就已經完成從 數據寫入實時檢索 的最小閉環。
接下來可以挑戰 向量搜索、ES|QL、監控告警 等更高階能力,打造真正生產級的搜索服務 🚀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91253.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

語音表示學習論文總結

語音表示學習(Speech Representation Learning)是語音信號處理與機器學習交叉領域的核心技術,其目標是通過數據驅動的方式,從原始語音信號中自動提取具有判別性、魯棒性和泛化能力的特征表示,以替代傳統手工設計的聲學…

國產芯+單北斗防爆終端:W5-D防爆智能手機,助力工業安全通信升級

在石油石化、煤礦開采、電力檢修等高危行業,防爆設備的定位精度、通信可靠性及供應鏈安全性直接決定作業安全與生產效率。傳統防爆手機依賴GPS定位與進口芯片,存在信號盲區、數據泄露風險及斷供隱患。針對此,我們推出W5-D防爆智能終端&#x…

Kafka簡述及學習課程

Kafka是由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者在網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現…

BLE PHY 幀結構

BLE(低功耗藍牙)的 PHY(物理層)幀結構根據傳輸模式(廣播、數據)和 PHY 類型(1M、2M、Coded PHY)有所差異,但基本框架一致。以下是 BLE PHY 幀的通用結構及各部分含義&…

海外貨運 app 系統架構分析

一、引言海外貨運業務涉及眾多復雜環節,從貨物攬收、倉儲管理、運輸調度到最后交付,需要一個高效、穩定且功能全面的 APP 系統來協調各方資源,提升物流效率,保障貨物安全準確送達。本文將對海外貨運 APP 系統架構進行詳細剖析&…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-52,(知識點:簡單一階低通濾波器的設計,RC濾波電路,截止頻率)

目錄 1、題目 2、解答 3、相關知識點 一、一階低通濾波器的核心原理 1. 電路結構 2. 關鍵特性參數 二、一階低通濾波器的設計步驟(以 RC 電路為例) 1. 確定截止頻率\(f_c\) 2. 選擇電阻 R 的阻值 3. 計算電容 C 的容值 4. 驗證與調整 三、典…

防火墻安全實驗

一、實驗拓補圖二、實驗需求1、VLAN 2屬于辦公區;VLAN 3屬于生產區2、辦公區PC在工作日時間(周一至周五,早8到晚6)可以正常訪OA Server,其他時間不允許3、辦公區PC可以在任意時刻訪問Web server4、生產區PC可以在任意時刻訪問OA Server,但是不…

TOC-Transformer-LSTM-ABKDE,計算機一區算法龍卷風優化算法應用到概率區間預測!Matlab實現

TOC算法概述 文獻《Tornado optimizer with Coriolis force: a novel bio-inspired meta-heuristic algorithm》核心解讀:科里奧利力的龍卷風優化算法(Tornado optimizer with Coriolis force,TOC)對龍卷風循環過程的觀察以及雷暴…

Adobe Illustrator安裝下載教程(附安裝包)Illustrator2025

文章目錄一、Illustrator2025 下載鏈接二、Illustrator2025 安裝步驟三、Illustrator 2025 軟件介紹一、Illustrator2025 下載鏈接 夸克下載鏈接:https://pan.quark.cn/s/b990bac7107c 二、Illustrator2025 安裝步驟 1.將安裝包下載并解壓,雙擊打開&am…

matlab - 算4個數的加減法

文章目錄matlab - 算4個數的加減法概述筆記ENDmatlab - 算4個數的加減法 概述 有個類似于下面的4個數的加減法,給出任意一組解就行。 反正都是遍歷, c可以,matlab也可以。 筆記 % file test.m % brief 用matlab來算"4個數的加減法" %a b…

C++ 1.面向對象編程(OOP)框架

目錄 面向對象編程(OOP)框架 問題背景 OOP框架開發的關鍵問題解析 步驟1:抽象設計階段 步驟2:繼承層次設計 步驟3:多態機制應用 步驟4:對象關系管理 這個案例展現的核心OOP價值 封裝的價值 繼承的價值 多態的價值 實際…

mac操作筆記

mac的操作筆記opt文件夾是干什么的?如何在某個訪達的文件夾里快速打開終端opt文件夾是干什么的? 在 macOS 中,/opt 目錄是一個可選(optional)軟件安裝目錄,主要用于存放第三方或非系統原生的應用程序。 /…

紅黑樹×協程×內存序:2025 C++后端核心三體問題攻防手冊

以下是2025年C后端開發全新高頻壓軸面試題,結合騰訊、字節、阿里等大廠最新技術棧,聚焦紅黑樹工程實踐、C20協程底層、Linux內核同步、分布式鎖實現及內存序重排五大核心領域,附工業級解決方案和手撕代碼示例: 🌳 一、…

《人工智能導論》(python版)第2章 python基礎2.2編程基礎

書寫這篇博客的目的在于實踐并記錄《人工智能導論》(Pyhton版)微課視頻版這本書的內容,便于對人工智能有更深層次的理解。 參考文獻:姜春茂.人工智能導論(Python版)微課視頻版[M]. 北京:清華大學出版社,20…

高可用部署

一.keeplivaer nginx 高可用部署 下面為你詳細介紹基于 Keepalived 和 Nginx 在兩臺機器(192.168.137.132 和 192.168.137.61)上實現高可用部署的完整步驟: 一、環境準備(兩臺服務器均執行)環境準備 (1&…

java面向對象高級02——單例類(設計模式)

1.什么是設計模式?一個問題可以有多種解法,在眾多解法的最優解法、方案就是設計模式。我們關注的點:某一種設計模式解決的是啥問題?這一設計模式怎么寫?2.單例設計模式a.作用單例設計模式的核心作用是確保一個類只有一…

0730 數據結構重點整理

Part 1.梳理數據結構重點一.宏1.簡單宏a. #define 宏名 宏體b. #if 宏(#ifndef)c.#endif2.多語句宏a. define 宏函數名(參數1,參數2......)({C語句1,C語句2......})b. define 宏函數名(參數1,參數2......)do(C語句1,C語句2......)…

免費版酒店押金原路退回系統之【房費押金計算器】實踐——仙盟創夢IDE

代碼<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>未來之窗——費用計算器</title><s…

Windows下基于 SenseVoice模型的本地語音轉文字工具

Windows下基于 SenseVoice模型的本地語音轉文字工具 前言&#xff1a; ? 現在很流行Vibe Coding但是指揮大模型寫代碼其實也是一件非常累的事情&#xff0c;經常需要輸入大段的文字去描述問題的現象以及具體的解決方案。剛好看到有一些博主通過本地部署語音大模型實現了語音轉…

OWSM v4 語音識別學習筆記

目錄 OWSM v4 簡介 卡內基梅隆大學 這個代碼不知道干嘛的 tokenizer CTC分割算法 yodas2數據集 依賴性安裝&#xff1a; 數據集下載地址&#xff1b; 模型下載地址&#xff1a; docker安裝&#xff08;適用于多數 Linux 系統&#xff09;測試ok 推理demo OWSM v4 簡介…