近端時間在搬磚過程中對es進行了操作,但是對es查詢文件不熟悉,所以這兩周都在研究es,簡略看了《elasticsearch權威指南》,摸摸魚又是一天。
es是一款基於lucene的實時分布式搜尋和分析引擎,今天咱不聊其應用場景,聊一下es索引增刪改。
環境:centos 7,elasticsearch6.8.3,jdk8
(最新的es是7版本,7版本需要jdk11以上,所以裝了es6.8.3版本。)
下面都將以student索引為例
一、建立索引
put
, "name":,
"age":}},
"birthday":,
"gender":,
"grade":}},
"class":}}
}}},"settings":
}
type屬性是text和keyword的區別:
(1)text在查詢的時候會被分詞,用於搜尋
(2)keyword在查詢的時候不會被分詞,用於聚合
index屬性是表示字串以何種方式被索引,有三種值
(1)analyzed:字段可以被模糊匹配,類似於sql中的like
(2)not_analyzed:字段只能精確匹配,類似於sql中的「=」
(3)no:欄位不提供搜尋
analyzer屬性是設定分詞器,中文的話一般是ik分詞器,也可以自定義分詞器。
number_of_shards屬性是主分片數量,預設是5,建立之後不能修改
number_of_replicas屬性時分片副本數量,預設是1,可以修改
建立成功之後會返回如下json字串
建立之後如何檢視索引的詳細資訊呢?
es6版本,索引之下只能有乙個型別,例如上文中的「_doc」。
es跟關係型資料庫比較:
二、修改索引
//修改分片副本數量為2
put /_settings
三、刪除索引
//刪除單個索引
delete
//刪除所有索引
delete
四、預設分詞器standard和ik分詞器比較es預設的分詞器是standard,它對英文的分詞是以空格分割的,中文則是將乙個詞分成乙個乙個的文字,所以其不適合作為中文分詞器。
例如:standard對英文的分詞
//此api是檢視文字分詞情況的
post
結果如下:
,,,,]}
對中文的分詞:
post
結果如下:
,,,
,,,,,]}
ik分詞器是支援對中文進行詞語分割的,其有兩個分詞器,分別是ik_smart和ik_max_word。
(1)ik_smart:對中文進行最大粒度的劃分,簡略劃分
例如:
post
結果如下:
,]}
(2)ik_max_word:對中文進行最小粒度的劃分,將文字劃分盡量多的詞語
例如:
post
結果如下:
,,,
,,,,
,,,,
]}
ik分詞器對英文的分詞:
post
結果如下:會將不重要的詞去掉,但standard分詞器會保留(英語水平已經退化到a an the都不知道是屬於什麼型別的詞了,身為中國人,這個不能驕傲)
,,,
]}
五、新增文件可以任意新增字段
//1是「_id」的值,唯一的,也可以隨機生成
post /_doc/1
六、更新文件
post /_doc/1/_update
}
七、刪除文件
//1是「_id」的值
delete /_doc/1
上述就是簡略的對es進行索引建立,修改,刪除,文件新增,刪除,修改等操作,為避免篇幅太長,文件查詢操作將在下篇進行更新。
doc es 中type 你還不會ES的CUD嗎?
近端時間在搬磚過程中對es進行了操作,但是對es查詢文件不熟悉,所以這兩周都在研究es,簡略看了 elasticsearch權威指南 摸摸魚又是一天。es是一款基於lucene的實時分布式搜尋和分析引擎,今天咱不聊其應用場景,聊一下es索引增刪改。環境 centos 7,elasticsearch6...
docker容器你還不會嗎?趕緊學吧
前兩天有個朋友問我,發生腎麼事了?我說怎麼回事,給我發了幾張截圖,我一看,哦,原來是虛擬化軟體,有兩個類別,都很強,乙個完全模擬一台電腦,乙個完美利用資源,有乙個說是,我很強,硬體什麼的都能掌控,我說你死勁兒不好用,他不服氣,我說小朋友,你一台啟動速度和我十台啟動速度比比,他比不過,他說你這也沒用,...
你還不會建立jQuery外掛程式 ?
如何建立乙個jquery外掛程式 為什麼要建立jquery外掛程式 因為這樣 可以復用。我們有這樣乙個頁面,頁面上面有如下的文字 看原始碼 我們想要的效果是,當滑鼠移到鏈結的時候,用乙個浮動的div來顯示a標籤的title內容.這是通過js來完成的。假設有乙個方法tooltip 你只需要呼叫這個方法...