三、ElasticSearch 8.6.0 快速使用 - 索引 API 的基本操作
hi,我是温新,一名 PHPer
ES 版本:ElasticSearch 8.6.0
系统版本:Rocky Linux 9.1
学习目标:掌握索引的 CURD 操作
本篇文章结合官方文档编写及参考网络资料编写,虽非全部原创,但也是结合了自己的理解,若转载请附带本文 URL,编写不易,持续编写更不易,谢谢!
本篇文章将学习索引的 CURD 操作。
创建索引
语法:
<span style="color: rgb(238, 236, 225);">PUT <index_name></span><br></br>
index_name
为索引名称。
索引命名规范:
必须以小写英文字母命名索引;
不要使用驼峰命令;
出现多个单品时,以全小写 + 下划线分隔方式,如
goods_shop
案例:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 添加索引</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">PUT ziruchu</span>
成功返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"shards_acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"index"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"ziruchu1"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
删除索引
语法:
<span style="color: rgb(238, 236, 225);">DELETE <index_name></span><br></br>
案例:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 删除索引</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">DELETE ziruchu</span>
成功返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
判断索引是否存在
语法:
<span style="color: rgb(238, 236, 225);">HEAD <index_name></span><br></br>
案例:
<span style="color: rgb(238, 236, 225);">HEAD ziruchu</span><br></br>
返回值:
<span style="color: rgb(238, 236, 225);">200 - OK</span><br></br>
settings 设置
创建索引时指定 settings
。
语法:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">PUT <index_name></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"settings"</span>: {}</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
案例:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 添加索引并设置 settings</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">PUT ziruchu</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"settings"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"number_of_shards"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span>, //主分片数量为 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"number_of_replicas"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span> //每个主分片分配一个副本</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"shards_acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"index"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"ziruchu"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
查询索引
语法:
<span style="color: rgb(238, 236, 225);">GET <index_name></span><br></br>
案例:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 查询索引</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">GET ziruchu</span>
返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"ziruchu"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"aliases"</span>: {},</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"mappings"</span>: {},</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"settings"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"index"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"routing"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"allocation"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"include"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"_tier_preference"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"data_content"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> },</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"number_of_shards"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"1"</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"provided_name"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"ziruchu"</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"creation_date"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"1676987928986"</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"number_of_replicas"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"1"</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"uuid"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"wArIVeQASZ6shIVtkD-Q4w"</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"version"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"created"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"8060099"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
关闭索引
语法:
<span style="color: rgb(238, 236, 225);">POST <index_name>/close</span><br></br>
案例:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 关闭索引</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">POST ziruchu/_close</span>
返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"shards_acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"indices"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"ziruchu"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"closed"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
打开索引
语法:
<span style="color: rgb(238, 236, 225);">POST <index_name>/_open</span><br></br>
案例:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 打开索引</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">POST</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">ziruchu</span><span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">/</span><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">_open</span></span>
返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"shards_acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
添加索引 & 映射 & 分词
添加索引的时候可以添加该索引的映射,且可以为映射指定分词。下面直接通过案例演示:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">PUT</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">human</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"mappings"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"properties"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"name"</span>: {</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"type"</span>:<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"keyword"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> },</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"address"</span>:{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"type"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"text"</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"analyzer"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"ik_max_word"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> }</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"shards_acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"index"</span>: <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"human"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
删除索引
语法:
<span style="color: rgb(238, 236, 225);">DELETE <index_name></span><br></br>
案例:
<span style="color: rgb(238, 236, 225);">DELETE ziruchu</span><br></br>
返回值:
<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">{</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span class="cm-string cm-property" style="box-sizing: border-box;color: rgb(97, 175, 239) !important">"acknowledged"</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">}</span>
请登录后再评论