首頁 > AI工具教程 > Elasticsearch怎麼用 全文搜尋引擎入門教程

Elasticsearch怎麼用 全文搜尋引擎入門教程

更新時間:2026-10-16 11:37:54 釋出時間:7天前 閱讀:18 views次

Elasticsearch是一個開源的分散式全文搜尋引擎,能快速搜尋海量資料,是企業搜尋和日誌分析的核心元件。它把資料組織成索引和文件,透過倒排索引快速找出匹配內容。下面從本地啟動開始,帶你完成安裝、建索引、寫入資料和查詢;示例使用常見 REST API,可用 curl 或 Kibana 的開發工具執行。

第一步:安裝Elasticsearch

入門時建議用 Docker 快速試跑:先安裝 Docker,再在終端執行官方映像啟動命令。測試環境可啟用單節點模式,並按所用版本配置安全選項;生產環境不要照搬關閉安全功能的簡化設定。也可以下載對應作業系統的發行包,按官方說明啟動服務,確保 Java 等依賴符合該版本要求。

服務啟動後,確認容器或行程正常,再訪問本機的 9200 埠。若啟用了身份驗證,使用配置的帳號和密碼請求;若服務有 TLS,也要按證書設定連線。成功時會返回叢集名稱、版本等 JSON 資訊。連線失敗先檢查服務日誌、埠占用、防火牆和認證配置,避免把連線問題誤判成搜尋介面錯誤。

第二步:建立索引和寫入資料

索引可以理解為同類文件的集合,文件則是一條 JSON 資料。用 PUT 請求建立索引,例如建立 products,併為名稱、描述、價格和標籤定義欄位型別。text 適合全文檢索,keyword 適合精確篩選或聚合,數值欄位應選 integer、float 等型別。欄位設計清楚,後續查詢和排序會更穩定。

建立好索引後,用 PUT /products/_doc/1 寫入一條商品文件,請求體可包含 name、description、price、tags 等欄位;也可用 POST /products/_doc 自動生成文件 ID。收到成功響應後,留意返回的 _index、_id 和 result。要批次匯入時可用 Bulk API,但每條操作都要遵循它要求的逐行 JSON 格式。

配置對映和分詞器

對映決定欄位如何儲存和檢索。建索引時,在 mappings.properties 中設定欄位型別;全文欄位用 text,識別符號和分類標籤通常用 keyword,日期用 date。text 欄位會經過分析器拆成詞項,預設分析器對中文內容不一定符合預期。先按業務選擇並測試合適的中文分詞方案,再用於索引與查詢,確保兩邊分析方式匹配。

例如建立索引時,可給 title 欄位設定 analyzer,並透過分析器測試介面觀察文字會被切成哪些詞。分析器配置通常包含 tokenizer 和 filter;不確定時先使用預設配置做小規模驗證。已有欄位的型別或分析器不能隨意原地更改,改動較大時,通常新建索引、重新寫入資料,再透過別名切換,避免影響線上查詢。

第三步:執行搜尋查詢

用 GET /products/_search 搜尋,並在請求體的 query 中寫 match 查詢,例如對 description 搜尋“輕便旅行揹包”。match 會按欄位分析文字,適合全文檢索;term 則適合精確匹配 keyword、狀態碼等值。響應裡的 hits.hits 是命中的文件,_source 顯示原始欄位,_score 可輔助理解相關性排序。

常用查詢可以組合:bool 中的 must 表示必須匹配,filter 用於精確篩選且不參與相關性評分,should 可提高符合條件結果的排名。分頁可用 from 和 size,排序可用 sort。資料量很大時,避免深分頁,考慮 search_after。除錯時逐步增加條件,並檢查欄位型別、分詞結果和響應中的錯誤資訊。

掌握基本介面後,再學習批次寫入、聚合統計、別名、快照備份和叢集監控。上線前為索引規劃分片和副本,依據資料規模及查詢壓力測試效能,並設定權限、備份與告警。若希望使用託管服務、減少叢集運維,也可瞭解國內替代方案火山引擎;潤滅整理的相關入口為volcengine.cgref.cn,選型時建議核對當前產品能力、版本支援和計費方式。

標籤:
微信        
微信號runmie