侧边栏壁纸
博主头像
此昵称不存在 博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Elasticsearch学习

Administrator
2024-06-30 / 0 评论 / 0 点赞 / 196 阅读 / 0 字 / 正在检测是否收录...

Elasticsearch学习

Elasticsearch基础概率

详情参考:核心概念

  1. index(索引)
    动词,相当于MySQL中的insert;
    名词,相当于MySQL中的Database(由于ES 7.x 之后版本已删除Type概念,等价于 MySQL 中的表)

  2. Type(ES 7.x 之后版本已删除此概念)
    在index中可以定义一个或者多个类型,类似于MySQL中的Table,每一种数据类型的数据放在一起

  3. Document(文档)
    保存在某个索引下,某种类型的一个数据,文档是JSON格式的,Document就像是MySQL中的某个table里面的内容

Docker安装Elasticsearch

  1. 拉取镜像docker pull elasticsearch:版本
  2. 启动Elasticsearch docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -m 128m elasticsearch:版本 --name elasticsearch其中-e "discovery.type=single-node"表示添加环境变量已单节点方式运行
  3. 复制Elasticsearch配置文件docker docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /youPath/elasticsearch
  4. 修复配置文件将xpack.security.enabled: true; xpack.security.enrollment.enabled: true全都修改为false负责可能无法正常启动
  5. 删除原有容器,重新运行Docker启动命令,注意挂载配置文件位置

Elasticsearch基础命令学习

tips:ES 7.x 之后版本已删除Type概念,在请求url中需将原先带有分类的路径替换为_doc,例如创建索引POST /{indexName}/{type}/{id} 替换为POST /{indexName}/_doc/{id}

  1. _cat
    GET /_cat/nodes; 查看所有节点
    GET /_cat/health; 查看ES健康情况
    GET /_cat/master; 查看主节点
    GET /_cat/indices; 查看所有索引 类型与 show tables
  2. 索引一个文档(保存)
    保存一个数据,保存在哪个索引下,指定用哪个唯一标识
    PUT /indexname/_doc/1 在indexname索引下保存1号数据

image-sefv.png
PUT和POST都可以,其中POST新增,如果不指定ID,会自动生成ID。指定ID就会修改数据,并新增版本号
PUT可以新增可以修改,PUT必须指定ID,由于PUT需要指定ID,我们一般用来做修改操场,不指定ID会报错
其他详细基本操作参考地址:索引和文档的基本操作

ES进阶检索

  1. 直接拼接在URL方式(不推荐,后续使用DSL)
    GET /indexname/_search?q=*&sort=account_number:asc其中q为查询参数*则表示查询全部sort表示排序,按照账号正序排序
  2. Query DSL
    可直接参考文档:Query DSL

ES数据迁移

索引映射类型无法直接更新,常新建一个新的索引并映射好新的类型,然后进行数据迁移

POST _reindex
{
  "source": {
    "index": "my-index-000001"
  },
  "dest": {
    "index": "my-new-index-000001"
  }
}

分词器

官方说明文档

  1. 标准分词器对中文支持不友好
    GET /_analyze
    {
      "analyzer" : "standard",
      "text" : "Quick Brown Foxes!"
    }
    
  2. 安装ik分词器
    ik分词器地址
    下载对应版本的压缩包后解压到es的plugins目录即可
    使用示例:
        GET /_analyze
    {
      "analyzer" : "ik_max_word",
      "text" : "我是中国人"
    }
    // 响应
    {
      "tokens": [
    {
      "token": "我",
      "start_offset": 0,
      "end_offset": 1,
      "type": "CN_CHAR",
      "position": 0
    },
    {
      "token": "是",
      "start_offset": 1,
      "end_offset": 2,
      "type": "CN_CHAR",
      "position": 1
    },
    {
      "token": "中国人",
      "start_offset": 2,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "中国",
      "start_offset": 2,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "国人",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 4
    }
      ]
    }
    
    详细使用规则参考官方文档即可
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区