日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

  • Elasticsearch作為一門全文檢索技術,那它是如何使用的呢?
  • 先學習Elasticsearch的一些語法,后續再在項目中實戰應用。

一、IK分詞器

這個IK分詞器有什么用?為什么要用它?

要知道計算機是老美搞出來的,它的很多東西對于中文來說其實是很不友好的。

關于分詞,即把一段中文或者別的劃分成一個個的關鍵字。

比如"我是中國人",可以分為多少個詞?

按照中國漢字語言,其分為“我”,“是”,“中國人”,“中國”,“國人”這5個。

也就是說用戶輸入上述5個詞語,都可以搜索到“我是中國人”這條數據。

而默認的中文分詞是將每個字看成一個詞,會被分為“我”,“是”,"中","國","人"。

這顯然是不符合要求的,所以用中文分詞器ik來解決這個問題。

如何通過Elasticsearch創建索引庫?

 

①analyze:翻譯過來就是分析的意思,這里就可以理解成分詞。

②analyzer:這里也就是指分詞器,我們使用ik_max_word。

  • ik_max_word為最細粒度劃分。
  • ik_smart為最少切分。

這是ik分詞器提供的兩個分詞算法,至于具體是如何實現的,就要去研究它的算法了。

可以把上述代碼修改做一個對比,會發現使用ik_smart只能分三個詞:“我”,“是”,“中國人”

這里顯然使用ik_max_word更加的合適。

二、基本概念

Elasticsearch本質上也就是在存儲數據,其有很多概念可以和MySQL類似的。

如何通過Elasticsearch創建索引庫?

 

為了方便學習將其和MySQL結合起來。

當然嚴格來說將這些概念對應起來不太準確,但目前就這樣理解也沒問題。

①索引庫indices

  • MySQL中通過數據庫存儲數據。
  • Elasticsearch中通過索引庫存儲索引。

indices本身也就是索引indexs的復數寫法。

②類型type

  • 一個數據庫中可以創建多張表,比如說商品表,訂單表。
  • 一個索引集也可以有不同類型的索引,比如說商品索引,訂單索引。

不過這有一個缺陷是會導致索引庫混亂,未來版本中會移除這個概念,emm…也不知道現在移除這個概念沒有,目前還沒來得及查。

③文檔document

  • 數據庫中一條數據就是一行。
  • 索引集中一條信息就是一個文檔

④字段field

  • 數據庫中列就是每一行中的數據。
  • 索引集中字段就是文檔中的屬性。

弄清楚了這些概念,接下來創建索引庫。

三、操作索引庫

昨天我們也說明過了,Elasticsearch是一個基于RESTful風格的搜索引擎。

Elasticsearch采用的是REST風格API,其API本質上也就是一次http請求:

1索引庫的創建

如何通過Elasticsearch創建索引庫?

 

既然是請求,那自然就會有:

  • 請求方式:PUT,其對應的就是創建。
  • 請求路徑:/索引庫名
  • 請求參數:這里是settings

這里settings是指索引庫的設置:

  • number_of_shards:分片數量。
  • number_of_rplicas:副本數量。

這個呢就涉及到了一些集群相關的概念,后續具體使用到的時候再做說明。

2索引庫的查詢與刪除

REST風格的方便之處就在于通過請求方式的不同就能實現不同的操作:

如何通過Elasticsearch創建索引庫?

 

①查詢索引庫

請求方式GET對應的就是查詢操作。

請求路徑依舊是上述創建的索引庫,可以查詢出liuxiaoai01索引庫的信息。

②刪除索引庫

請求方式DELETE對應的就是刪除操作。

請求路徑依舊是上述創建的索引庫,可以刪除liuxiaoai01索引庫。

刪除后再次使用GET查詢對應的索引庫,會發現其會報錯了,證明刪除成功。

四、操作字段映射

創建了索引庫也就相當于有了database數據庫,接下來就是數據表并添加數據了。

1類型的創建

如何通過Elasticsearch創建索引庫?

 

在索引庫中添加數據叫映射,這也是上述格式中_mApping的由來。

goods就是索引類型,也就是相當于數據庫中的goods數據表。

properties也就是屬性,其下添加對應的字段,上述中就有title,images,price三個字段,可以設置許多屬性:

  • type:int、long、short、date、integer、text、string……等多個。
  • index:根據語義理解就是是否被作為索引?
  • analyzer:也就是分詞器。

這個type是字段數據類型:int、long這些是數字類型,text、string是字符串類型。

  • 若是text類型,默認會分詞。
  • 若是String類型,默認不會分詞,上述中寫的keyword和String一回事,翻譯過來是關鍵字的意思,關鍵字肯定不能再分了,更好理解。

2類型的查詢

如何通過Elasticsearch創建索引庫?

 

PUT對應著新增操作,GET也就對應著查詢操作了,關于類型沒有刪除和修改操作。

就相當于不能刪除和修改數據表的名稱,這點倒是和MySQL數據庫不一樣。

其查詢到的索引之間的映射關系也很清楚:

索引庫叫liuxiaoai01,通過mappings映射有goods這個索引類型,該類型下properties中有3個字段。

基本上知道了其單詞意思也就知道其作用了。

注意關于這個type不要弄混了:

  • goods對應的是索引類型,相當于數據表。
  • 上述多個類型對應的是字段的數據類型。

最后

行有不得反求諸己,我是@劉小愛

分享到:
標簽:Elasticsearch
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定