ES快速入门篇

目标

1.了解ES基础知识
2.了解与使用 http 与 ES交互

步骤

1.下载ES 7.17.3
2.修改config 目录下的配置文件 elasticsearch.yml,
添加一行, xpack.security.enabled: false 用于关闭鉴权(暂时不需要深究)
3.启动环境 bin目录下输入cmd 进入控制台 ,使用 elasticsearch-service.bat start 启动环境
控制输出 The service ‘elasticsearch-service-x64’ has been started 就启动成功了
访问 localhost:9200 可以查看当前ES 的信息

基本概念

index 索引,不要类比Mysql的索引, 在ES中是指相同类型的文档的集合
type 类型 7.X版本正在逐渐舍弃这个概念,忽略
document 文档 用来搜索的数据
field 字段 类似与数据库的列, 多个field 组成文档(就是具体JSON对象的属性)

类比Mysql的话, 一个文档就像数据库里的一条数据,字段就像数据库里的列,因此,我们可以把索引当做是数据库中的表。

Http与ES 交互

操作索引;

创建索引库:PUT /索引库名
查询索引库:GET /索引库名
删除索引库:DELETE /索引库名
修改索引库(添加字段):PUT /索引库名/_mapping

PUT /索引库名称
或者
PUT /索引库名/_mapping
可以携带如下参数, 用于初始添加索引的数据映射关系, 更改映射关系
```json
{
  "mappings": {
    "properties": {
      "字段名":{
        "type": "text", //类型
        "analyzer": "ik_smart" //分词器
      },
      "字段名2":{
        "type": "keyword",
        "index": "false"
      },
      "字段名3":{
        "properties": {
          "子字段": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

操作文档

查询:

  1. 根据id查询
    GET http://localhost:9200/索引/_doc/id
  2. 匹配查询
    单属性匹配查询
    GET http://localhost:9200/索引/_search
    Content-Type: application/json
{
  "query": {
    "match": {"属性": "属性值"}
  }
}

最左匹配查询

GET http://localhost:9200/索引/_search
Content-Type: application/json

{
  "query": {
    "match_phrase_prefix": {"title": "title"}
  }
}

带分页参数查询
GET http://localhost:9200/索引/_search
Content-Type: application/json

{
  "from": 0,
  "size": 2,
  "query": {
    "match_phrase_prefix": {"title": "title"}
  }
}

排序, 排序的字段类型需要时keyword, 一种用于精确匹配的字段类型
GET http://localhost:9200/索引_search
Content-Type: application/json

{
  "from": 0,
  "size": 10,
  "query": {
    "match_phrase_prefix": {
      "title": "title"
    }
  },
  "sort": [
    {
      "category": {
        "order": "desc"
      }
    }
  ]
}

范围查询

GET http://localhost:9200/索引/_search
Content-Type: application/json

{
  "from": 0,
  "size": 2,
  "query": {
    "range": {
      "category": {"gte": "category4","lt": "category5"}
    }
  }
}

使用term精准匹配查询, text如果没有设置分词器使用match,也会与term一样的效果
GET http://localhost:9200/blog/_search
Content-Type: application/json

{
  "from": 0,
  "size": 2,
  "query": {
    "term": {
      "category": "category4"
    }
  }
}

多条件查询
GET http://localhost:9200/blog/_search
Content-Type: application/json

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "wanggfei"
          }
        },
        {
          "match": {
            "age": 25
          }
        }
      ]
    }
  }
}

查询所有
GET http://localhost:9200/索引/_search

3.新增数据
一般生产环境的新增数据使用CDC 数据同步技术, 不是实时调用接口与ES 进行交互,忽略

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值