前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elaticsearch

Elaticsearch

作者头像
P轴
发布2022-11-22 16:47:54
2130
发布2022-11-22 16:47:54
举报
文章被收录于专栏:P轴

(adsbygoogle = window.adsbygoogle || []).push({});

# 简介

分布式实时搜索和分析引擎,处理PB级别的结构化或非结构化数据

# 基本概念

文档型数据库,用JSON作为文档序列化的格式 索引对应数据库概念 可以用JAVA api,也可以用HTTP请求操作

# 安装

可视客户端kibana 默认英语 kibana-7.15.2-windows-x86_64\config\kibana.yml 末尾添加 i18n.locale: "zh-CN" bin目录下启动 打开后台url http://127.0.0.1:5601/app/home#/ 开发工具运行即可

image
image

分片 提高吞吐量

查看es中的索引: GET /_cat/indices?v

创建索引: PUT /索引名 PUT /products

PUT /products1 { "settings": { "number_of_shards": 1, #指定主分片数量 "number_of_replicas": 1 #指定副本分片数量 } } ES中索引健康状态,red(索引不可用),yellow(索引可用,存在风险),green(健康)

删除索引: DELETE /products

创建索引时候,一并创建映射: 常见类型: 字符串类型:keyword(关键词关键字)、text(一段文本) 数字类型:integer log 小数类型:float double 布尔类型:boolean 日期类型:date

代码语言:javascript
复制
PUT /products
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 1
  },
  "mappings": {
    "properties": {
      "id":{
        "type":"integer"
      },
      "title":{
        "type":"keyword"
      },
      "price":{
        "type":"double"
      },
      "create_at":{
        "type":"date"
      },
      "description":{
        "type":"text"
      }
    }
  }
}

查询索引映射信息: GET /索引名/_mapping GET /products/_mapping

文档操作:Json格式 添加文档操作 1、指定ID POST /products/_doc/1 { "id":1, "title":"薯条", "price":"10.5", "create_at":"2022-04-30", "description":"薯条真好吃啊" }

不指定ID POST /products/_doc/ { "title":"辣条", "price":"9.5", "create_at":"2022-04-30", "description":"辣条真是辣两头啊" }

# 删除文档(行)

根据ID 条件删除

# 更新文档(行)

代码语言:javascript
复制
POST /products/_doc/1/_update
{
  "doc":{
    "price":"5.8",
    "title":"薯条"
  }
}

# 与spring boot集成

添加配置类

代码语言:javascript
复制
package com.zr.config;

import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;

@Configuration
public class ElasticsearchConfig {
    @Bean
    RestHighLevelClient elasticsearchClient() {
        ClientConfiguration configuration = ClientConfiguration.builder()
                .connectedTo("127.0.0.1:9200")
                .build();
        RestHighLevelClient client = RestClients.create(configuration).rest();
        return client;
    }
}

注意:ID要使用String,日期要使用String 因为id如果没指定会随机生成类似"CJY5eoQBBwK1xW0ZOt5M"的

代码语言:javascript
复制
package com.zr.vo;

import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;

@Document(indexName = "products")
public class Product {

    private  String id;

    private String title;

    private double price;

    @Field(name = "create_at")
    private String createAt;

    private String description;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getCreateAt() {
        return createAt;
    }

    public void setCreateAt(String createAt) {
        this.createAt = createAt;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=38dpnhkh4o8wo

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 简介
    • # 基本概念
    • # 安装
      • # 删除文档(行)
        • # 更新文档(行)
        • # 与spring boot集成
        相关产品与服务
        Elasticsearch Service
        腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档