java · 2024年4月19日 0

ElasticSearch8.x基础使用

1,ES8更新内容

(1)Rest API相比较7.x而言做了比较大的改动(比如彻底删除_type),为了降低用户的升级成本,8.x会暂时的兼容7.x的请求。
(2)默认开启安全配置(三层安全),并极大简化了开启安全需要的工作量,可以这么说:7.x开启安全需要10步复杂的步骤比如CA、证书签发、yml添加多个配置等等,8.x只需要一步即可)。
(3)存储空间优化:更新了倒排索引,对倒排文件使用新的编码集,对于keyword、match_only_text、text类型字段有效,有3.5%的空间优化提升,对于新建索引和segment自动生效。
(4)优化geo_point,geo_shape类型的索引(写入)效率:15%的提升。
(5)新特性:支持上传pyTorch模型,在ingest的时候使用。比如在写入电影评论的时候,如果我们想要知道这个评论的感情正负得分,可以使用对应的AI感情模型对评论进行运算,将结果一并保存在ES中。
(6)技术预览版KNN API发布,(K邻近算法),跟推荐系统、自然语言排名相关。之前的KNN是精确搜索,在大数据集合的情况会比较慢,新的KNN提供近似KNN搜索,以提高速度。
(7)对ES内置索引的保护加强了:elastic用户默认只能读,如果需要写权限的时候,需有allow_restrict_access权限

2,ES8基本概念

与MySQL对比,索引相当于数据库,映射相当于表结构,文档为每一行记录

PUT /索引名称
{
    "settings":{
            "number_of_shards": 1, // 分片数量
            "number_of_replicas": 1 // 副本数量
     },
    "mappings":{
            "properties": {
                    "name":{
                             "type":"text"
                     } 
            }
     }
}

4,安装ik分词器

1,下载对应ik版本至plugin目录
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.0/elasticsearch-analysis-ik-8.9.2.zip

2,在plugin目录种新建ik
mkdir ik

3,解压ik压缩包到ik目录种
unzip -d ik/ elasticsearch-analysis-ik-8.9.2.zip

4,重启es

5,测试是否安装成功
POST /_analyze
{
  "analyzer": "ik_smart",
  "text": "旺仔牛奶真好喝"
}

5, es中的datatype

ElasticSearch系列03:ES的数据类型 – 知乎 (zhihu.com)

6,基本命令

1,删除索引
DELETE /indexName

2,复制索引数据
POST /_reindex
{
   "source":{
       "index":"原索引名称"
   },
   "dest":{
       "index":"新索引名称"
   }
}