avatar
文章
172
标签
157
分类
42

主页
文章
标签
分类
TranquilXuan
搜索
主页
文章
标签
分类

TranquilXuan

索引库基本操作
发表于2024-09-20|后端中间件|后端•中间件•Elasticsearch
索引库基本操作ES 通过 Restful 请求操作索引库、文档,本文介绍如何使用 DSL 来操作索引库 创建索引库示例模版 12345678910111213141516171819202122232425PUT /索引库名称{ "mappings":{ "properties":{ "字段1":{ "type":"text", "analyzer":"ik_smart" }, "字段2":{ "type":"keyword", "index":"false" }, "字段3":{ "properties" ...
索引库-mapping
发表于2024-09-20|后端中间件|后端•中间件•Elasticsearch
索引库-mapping写在前面的话: 在 Elasticsearch 6.x 及之前,每个索引中可以包含多个“类型”(类似于 SQL 中的表),通过类型区分不同文档结构。 从 Elasticsearch 7.x 开始,移除了类型的概念,所有文档在一个索引中共享相同的映射(mapping)。也就是说,不能再通过 type 区分不同文档,而是直接使用索引级别的映射。 Elasticsearch 8.x 彻底移除了类型字段,即 _type 字段完全不存在。 在 Elasticsearch 7.x 及以上版本中,索引结构的基础已经从原来的“类型(type)”转变为纯粹基于文档和字段(document and field)。 mapping 是对索引库中 document 的约束,本文介绍常见的mapping属性 常见的mapping属性 type(字段类型) index(是否创建索引,默认true) analyzer(分词器) properties(该字段有哪些子字段) type 类型详解核心数据类型文本类型 text文本类型默认会被分词,可以指定 index:"fal ...
IK分词器的扩展与停用词典
发表于2024-09-20|后端中间件|后端•中间件•Elasticsearch
IK分词器的扩展与停用词典什么是扩展词典/停用词典可以通过编辑扩展词典和停用词典来改变分词规则 扩展词典:有些词并不是关键词,但是也希望被ES用来作为检索的关键词,可以将这些词加入扩展词典。 停用词典 有些词是关键词,但是出于业务场景不想使用这些关键词被检索到,可以将这些词放入停用词典。 如何添加扩展词典和停用词典?所在目录: 编辑 IKAnalyzer.cfg.xml 文件 1234567891011121314<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict" ...
docker安装ES kibana ik
发表于2024-09-20|后端中间件|后端•中间件•Elasticsearch
docker安装ES kibana ikStep 1. 创建 Docker 网络1docker network create elastic-network Step 2. 创建Docker Compose 文件在一个目录下创建一个名为 docker-compose.yml 的文件,内容如下: 12345678910111213141516171819202122232425262728293031323334353637383940version: '3'services: elasticsearch: image: elasticsearch:7.17.0 container_name: elasticsearch environment: - discovery.type=single-node - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - cluster.name=docker-cluster - node.name=node-1 - ne ...
什么是ES
发表于2024-09-20|后端中间件|后端•中间件•Elasticsearch
什么是ES了解ES 一款强大的开源搜索引擎 elasticsearch结合了kibana、Logstash、Beats,即elastic stack(ELK),ELK技术栈的核心是ES 广泛应用于搜索、日志分析、实时监控领域(数据可视化) 前身是Lucene,提供搜索引擎的API,记住这个人:Shay Banon 认识ES传统的数据库一般使用正向索引,ES使用倒排索引,倒排索引是term到document的索引结构(正向索引是document到term) ducument可以理解成数据,term是数据的分词,ES面向文档(document)存储,文档以json序列化的格式存储在ES中 相同类型的json的集合(document的集合),作为索引(Index) 建立term到document的映射表,基于term来查询document编号;查询过程如图: MySQL和ES各自的优势领域: MySQL: 事务类型操作,数据安全性,一致性 ES:海量数据搜索、分析、计算 二者可以互补,如下图架构:
限流详解
发表于2024-08-14|后端性能优化|后端•性能优化
限流(Rate Limiting)详解定义限流(Rate Limiting)是指在单位时间内限制某个操作的最大执行次数,以防止系统过载、资源枯竭或拒绝服务攻击(DDoS)。 通过限流,可以确保系统在高并发访问时仍能保持稳定性和高可用性。 使用场景限流在各种场景中都能发挥重要作用,主要包括但不限于以下几种: API网关:限制客户端对后端服务的请求频率,防止恶意请求导致服务不可用。 用户操作:防止单个用户频繁操作,如频繁登录尝试、评论、点赞等。 分布式系统:在分布式系统中控制对某些共享资源的访问频率,防止资源竞争导致系统性能下降。 消息队列:控制消息的生产或消费速率,防止消息队列积压或系统过载。 如何使用限流限流的实现可以通过多种方式进行,常见的方法有以下几种: 客户端限流:在客户端对请求频率进行控制,防止过多请求发送到服务器。 服务器端限流:在服务器端对接收到的请求进行控制,常见的做法是在API网关或服务层实现限流逻辑。 中间件限流:使用第三方中间件或库实现限流,如Redis、Nginx等。 以下是一些具体的实现示例: 基于Redis的限流Redis是一个高性能的内存数据库,可以 ...
为什么需要不可变类?
发表于2024-08-14|后端Java|后端•Java
为什么需要不可变类?不可变类一旦创建,其状态就不能被修改,这带来了多个方面的好处 包括: 线程安全性 简化代码 提高性能 … 不可变类不代表类内变量不可变,而是状态(字段值)不可变 线程安全性多线程环境中的安全性:由于不可变对象一旦创建就不能改变状态,它们天生是线程安全的。 多个线程可以安全地共享和访问同一个不可变对象,而不需要同步机制来避免并发修改的问题。 简化代码减少复杂性:不可变对象的状态不会改变,因此在处理它们时,不需要考虑对象状态的变化。这简化了代码,减少了错误的可能性。 安全性:不可变对象可以安全地传递给方法、存储在集合中或返回给调用者,而不需要担心它们会在其他地方被修改。 提高性能缓存:不可变对象可以被缓存和重用。一个典型的例子是字符串池(String Pool),其中相同的字符串字面量被缓存,以减少内存使用和提高性能。 哈希码缓存:由于不可变对象的状态不变,它们的哈希码也不会变化。因此,可以在创建对象时计算并缓存哈希码,以提高集合(如哈希表和哈希集)的性能。 易于维护和调试更容易理解和维护:由于不可变对象的状态一旦创建就不变,理解和维护这些对象的代码变得更加 ...
为什么Java不支持多继承
发表于2024-08-14|后端Java|后端•Java
为什么Java不支持多继承第一,降低类关系复杂度 第二,避免菱形继承问题:A->B , A->C, B&C->D ,现在,D调用A的方法,B,C都有重写,产生冲突
接口与抽象类的区别
发表于2024-08-14|后端Java|后端•Java
接口与抽象类的区别总览 特性 接口 抽象类 方法实现 只能包含抽象方法(Java 8 之后支持默认方法和静态方法) 可以包含抽象方法和具体方法 成员变量 只能包含常量(默认 public static final) 可以包含实例变量、静态变量和常量 多重继承 一个类可以实现多个接口 一个类只能继承一个抽象类 访问修饰符 方法默认是 public 方法可以是 public、protected 或 default 构造器 没有构造器 可以有构造器 适用场景 定义一组不相关类的共同行为 定义一组相关类的共同行为和属性 实现和继承 implements extends 版本要求 Java 8 之前只能包含抽象方法 任意版本支持 区别 接口使用 interface ,抽象类使用 abstract 一个类可以实现多个接口,但只能继承一个抽象类 接口成员变量一定是public static final,抽象类成员变量没有约束 接口没有构造函数,抽象类可有可无 接口的方法一般是public abstract (Java8 后有default和stati ...
ForkJoinPool详解
发表于2024-08-14|后端Java|后端•Java
ForkJoinPool详解是什么ForkJoinPool 是 Java 并发包(java.util.concurrent)中的一种特殊线程池,用于执行分治任务。 ForkJoinPool 使用了一种工作窃取(work-stealing)算法,允许线程动态获取其他线程队列中的任务,以最大化 CPU 利用率和任务处理效率。 使用场景ForkJoinPool 特别适合以下场景(CPU密集型): 递归分治算法:如快速排序、归并排序等,需要将问题分解成更小子问题的算法。 大规模数据处理:需要并行处理大数据集,如数组、集合的并行操作。 核心组件ForkJoinTask:这是 ForkJoinPool 中执行的任务的基本类型,有两个主要子类: RecursiveTask:有返回结果的任务。 RecursiveAction:没有返回结果的任务。 工作窃取算法:每个工作线程都有自己的双端队列(deque),线程可以从自己的队列头部获取任务执行。当一个线程完成自己的任务时,它会从其他线程的队列尾部窃取任务,以减少空闲时间,提高并行性。 示例代码下面是一个使用 ForkJoinPool 计算 ...
1…101112…18
avatar
TranquilXuan
潜龙勿用,或跃在渊
文章
172
标签
157
分类
42
分类
  • MySQL1
    • 数据库1
  • 业务认知27
    • 零售供应链27
  • 中间件5
    • 后端4
    • 数据库1
  • 博客搭建5
  • 后端73
    • Java12
    • MyBatis5
    • Spring21
    • 中间件8
    • 工具库2
    • 性能优化1
    • 数据处理3
    • 数据库20
      • 中间件2
    • 软件工程1
  • 工程实践4
    • DevOps3
    • 博客搭建1
  • 数据库19
    • Doris1
    • MySQL1
    • 中间件3
    • 后端7
    • 后端实战1
    • 大数据4
    • 缓存1
  • 数据库实战1
    • 大数据1
  • 数据架构1
  • 认知思考7
  • 读书笔记15
  • 软件工程7
    • UML1
    • 设计模式6
  • 运维1
    • 数据库1
  • 零售供应链6
    • 业务认知5
标签
可靠性 死锁 博客搭建 RabbitMQ 库存周转 零售 品类策略 零售供应链 在线变更 索引 库存周转率 数据生命周期 数据库 采购管理 事务 大数据 缓存策略 仓储配送 资源隔离 长尾爆款 Doris Bitmap索引 技术管理 商品深度 并发控制 业务认知 后端 进销存 缓存击穿 UML 类目层级 采购 存储引擎 MVCC 数据倾斜 品牌资源 数据库优化 成本 中间件 库存管理
归档
  • 十月 202613
  • 九月 202627
  • 八月 202631
  • 七月 20261
  • 一月 20253
  • 十二月 20245
  • 十一月 20241
  • 九月 202424
  • 八月 20245
  • 七月 202462
网站资讯
文章数目 :
172
已运行时间 :
本站总字数 :
33.2w
本站总访问量 :
最后更新时间 :
©2024 - 2026 By TranquilXuan
京ICP备2026046208号-1
搜索
数据库加载中