elasticsearch7.9操做必看結合官方文檔 es head的操做必看 es增刪改查全詳解

1、做者有話說

本文爲了更加詳細的講解elasticsearch的操做,所有都是根據官網一點點進行說明。有興趣對官網進行閱讀的同窗,建議移步官網
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/getting-started-index.html
html

1.1 專業術語(必須進行掌握)

專業術語對學一箇中間件來講,是很是重要的,建議你們先了解如下的專業術語
https://blog.csdn.net/qq_34168515/article/details/108315484
程序員

本文只介紹幾個經常使用的術語正則表達式

1.1.1 索引 index

索引就像關係數據庫中的表。它具備一個包含type的 映射,該type包含索引中的字段。數據庫

注意:由於從6.x開始,就不推薦使用type是,可是爲了兼容如下版本,type統一爲 _doc編程

1.1.2 映射 mapping

映射就像關係數據庫中的架構定義。每一個 索引都有一個映射,該映射定義一個type,以及許多索引範圍的設置。api

注意:mapping一旦生成以後,就沒法進行修改了,除非從新創建一個新的索引,再拷貝過去數組

1.1.3 字段 field

一個文件包含字段或鍵-值對的列表。該值能夠是簡單(標量)值(例如,字符串,整數,日期),也能夠是嵌套結構(如數組或對象)。字段相似於關係數據庫中表中的列架構

1.1.4 術語 term

術語是在Elasticsearch中索引的精確值。該條款 foo,Foo,FOO是不等價的。可使用術語查詢來搜索術語(即精確值)。app

1.1.5 文本 text

文本(或全文)是普通的非結構化文本,例如本段。默認狀況下,文本將被分析爲 term,這是索引中實際存儲的內容。elasticsearch

文本字段須要在索引時進行分析才能做爲全文搜索,而且全文查詢中的關鍵字必須在搜索時進行分析以產生(和搜索)與索引時生成的詞相同的術語。

1.2 操做工具爲 elasticsearch head

界面
在這裏插入圖片描述

es head的下載方式,因爲篇幅問題,請自行百度!!!!!!

2、實際進行操做

參考官方 rest-api操做

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/rest-apis.html

在這裏插入圖片描述

2.1 操做es的步驟

在這裏插入圖片描述

2.1 使用自動建立的形式建立index

es head操做
在這裏插入圖片描述

2.1.1 常規操做建立格式: POST 索引/_doc

POST can123/_doc
{
    "user" : "kimchy",
    "createDate" : "2020-09-06 11:19:10",
    "message" : "trying out Elasticsearch"
}

2.1.2 查看 建立的索引和數據

索引、索引對應的mapping,也就是數據庫格式,都建立好了,咱們查看一下

存在問題?因爲createTime字段,是須要date時間格式的,可是mapping映射倒是text格式,明顯是不對,後續介紹如何進行處理
在這裏插入圖片描述
查看存入的數據
在這裏插入圖片描述
爲了方便後續的測試,請添加多條數據



{"user":"dog","createDate":"2020-09-06 11:19:10","message":"four leg dog"}
{"user":"cat","createDate":"2020-09-06 11:19:10","message":"four leg cat"}
{"user":"frog","createDate":"2020-09-06 11:19:10","message":"four leg frog"}
{"user":"pig","createDate":"2020-09-06 11:19:10","message":"four leg pig"}
{"user":"duck","createDate":"2020-09-06 11:19:10","message":"two leg duck"}
{"user":"chick","createDate":"2020-09-06 11:19:10","message":"chick leg chick"}

在這裏插入圖片描述

2.2 刪除index

添加

POST twitter/_doc/
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

2.2.1 刪除格式: DELETE /索引

DELETE /twitter/

3、從es head來看es的重要的搜索功能

3.1 查找某個文檔的所有內容 match_all

3.1.1 查看所有格式: POST 索引/_search

POST can123/_search

在這裏插入圖片描述

3.2 search的各類過濾

在這裏插入圖片描述

3.2.1 match 全文匹配

match和term的區別是,match查詢的時候,elasticsearch會根據你給定的字段提供合適的分析器,而term查詢不會有分析器分析的過程

查詢 message 包含關鍵字dog的文檔,ps: 注意和 term 的區別
在這裏插入圖片描述

查詢 message 包含 red dog的文檔,ps: 注意和 term 的區別

在這裏插入圖片描述

3.2.2 term 術語查詢

term是表明徹底匹配,即不進行分詞器分析,文檔中必須包含整個搜索的詞彙
查詢 message 包含關鍵字dog的文檔,ps: 注意和 match 的區別
在這裏插入圖片描述
查詢 message 包含 red dog的文檔,ps: 注意和 match 的區別
在這裏插入圖片描述
結論:




  1. match進行分詞器分析, 所謂的分詞,就是把當前的value進行分詞
  2. term是表明徹底匹配,即不進行分詞器分析

3.2.3 wildcard 通配符查詢

相似正則表達式,能夠對數據進行過濾查找
查找ck,若是正常的match是沒法查找到的
在這裏插入圖片描述
採用通配符查詢 *ck,就能夠查找到
在這裏插入圖片描述



3.2.4 prefix 前綴查詢

相似通配符查詢,查找以xxx開頭的關鍵字,參與倒排索引的每個詞查詢前綴
在這裏插入圖片描述

3.2.5 fuzzy 模糊查詢

在實際的搜索中,咱們有時候會打錯字,從而致使搜索不到。在Elasticsearch中,咱們可使用fuzziness屬性來進行模糊查詢,從而達到搜索有錯別字的情形。
match查詢具備「fuziness」屬性。它能夠被設置爲「0」, 「1」, 「2」或「auto」。「auto」是推薦的選項,它會根據查詢詞的長度定義距離。

錯別字模糊查詢:那麼它能夠顯示搜索的結果,這是由於咱們可以允許兩個編輯的錯誤。模糊性是拼寫錯誤的簡單解決方案,但具備很高的CPU開銷和很是低的精度。

例如match查找 chack 是沒法查詢到的
在這裏插入圖片描述

可是使用fuzzy查找 chack是能夠查找到 chick的
在這裏插入圖片描述

3.2.6 range 範圍查詢

範圍查詢,感受很是好理解,就是 lt 小於某個範圍, gt大於某個範圍。

3.2.7 query_string 查詢解析器

官方解釋:使用具備嚴格語法的解析器,根據提供的查詢字符串返回文檔。
該查詢使用語法根據操做符(如and或NOT)來解析和分割所提供的查詢字符串。而後,查詢在返回匹配的文檔以前獨立分析每一個分割文本。
可使用query_string查詢建立包含通配符的複雜搜索、跨多個字段的搜索等等。雖然通用,但查詢是嚴格的,若是查詢字符串包含任何無效語法,則返回錯誤。

能夠寫正則表達式,或者使用or and 等對查詢語句進行拼接,會更加靈活

同時查找 dog 和 cat
在這裏插入圖片描述

4、結尾

大部分的程序員,都是面向百度或者谷歌進行編程的,而網上的資料亂七八糟,有時候找起來讓人難受,因而本人無償進行資料收集的工做,大部分資料都是本人實打實收集的並且測試過,你們不用懷疑準確性,奈何能力有限,免於遺漏,但願讀者能夠在評論或者私信我,進行改正,你們一塊兒爲互聯網技術作貢獻。

========================

收集資料枯燥無味,若是本文對你有幫助,能夠點個贊,這個也是對我最大的鼓勵和讚許。

本人行不更名坐不改姓,潮汕的燦燦展

立志在互聯網這一行,作出本身的貢獻

========================

相關文章
相關標籤/搜索