2020-04-02 window中的通过终端设置环境变量例如:SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8这个设置的环境变量只会在当前窗口有效。这个窗口关闭。就无效可以在设置该环境变量以后,在开启对应的应该,这样就可以该次应该启动有有效...
elasticsearch 安装ik中文分词 全文搜索对于中文分词很重要,所以需要ik插件分词支持中文分词英文使用空格很容易分词,中文需要根据词意进行分词,需要【字典】支持插件项目:https://github.com/medcl/elasticsearch-analysis-ik未安装前【分词测试】postmanpost http://localhost:9200/_analyze{ "text":"活动在广...
Elasticsearch搜索中文分词优化-ik_max_word,和ik_smart模式 Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将该词分词成一个整词“人民币”,搜索单字如“人”字又不会匹配到包含“人民币”关键词的内容,怎么解决这个问题,既保证覆盖度又保证准确度? 搜索“RMB”时只会匹配到包含“RMB”关键词的内...
Elasticsearch 移除 type 之后的新姿势 随着 7.0 版本的即将发布,type的移除也是越来越近了,在 6.0 的时候,已经默认只能支持一个索引一个 type 了,7.0 版本新增了一个参数include_type_name,即让所有的 API 是 type 相关的,这个参数在 7.0 默认是true,不过在 8.0 的时候,会默认改成false,也就是不包含 type 信息了,这个是 type 用于移除的一个开关。让我们...
Elasticsearch实践(三):Mapping 版本:Elasticsearch 6.2.4。Mapping类似于数据库中的表结构定义,主要作用如下:定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型、布尔型等 定义倒排索引的相关配置,比如是否索引、记录postion等Mapping完整的内容可以分为四部分内容:字段类型(Field datatypes) 元字段(Meta-Fields) ...
听说你还没掌握 ElasticSearch Normalizer 的使用方法? 在Elasticsearch中处理字符串类型的数据时,如果我们想把整个字符串作为一个完整的 term 存储,我们通常会将其类型type设定为keyword。但有时这种设定又会给我们带来麻烦,比如同一个数据再写入时由于没有做好清洗,导致大小写不一致,比如apple、Apple两个实际都是apple,但当我们去搜索apple时却无法返回Apple的文档。要解决这个问题,就需要Nor...
配置Elasticsearch的映射 (mapping) 1.1 什么是映射 (1) 映射(mapping): 定义index的元数据, 指定要索引并存储的文档的字段类型.也就是说映射决定了Elasticsearch在建立倒排索引、进行检索时对文档采取的相关策略, 如数字类型、日期类型、文本类型等等.需要注意的是:检索时用到的分析策略, 要和建立索引时的分析策略相同, 否则将导致数据不准确.1.2 映射的组成每...
SpringBoot 使用Spring Initializr快速构建工程 序言:在此之前,我们主要通过Maven Archetype 来快速生成Maven项目,项目原型相对简陋,对各种IDE的支持也不太友好。然而通过Spring官方提供的Spring Initializr 来构建Maven项目,它不仅完美支持IDEA和Eclipse,而且能自动生成启动类和单元测试代码,给开发人员带来极大的便利!!一、在 IntelliJ IDEA 快速创建SpringBoot工程...
application.properties和application.yml文件的区别 关于一般上来说,当我们创建一个SpringBoot项目时,IDE会默认帮我们创建一个application.properties配置文件。有些朋友习惯把.properties文件改成.yml文件。那么这两种文件类型有什么区别呢?区别1.内容格式比较:.properties文件,通过.来连接,通过=来赋值,结构上,没有分层的感觉,但比较直接。.yml文件,通过:来分层,结构上,有比较...
实战Spring Boot 2.0之过滤器和拦截器 用户认证授权、日志记录MDC、编码解码、UA检查、多端对应等都需要通过拦截请求来进行处理。这时就需要Servlet、Filter、Listener、Interceptor这几种组件。而把非Spring Boot项目转换成Spring Boot项目,需要沿用以前的这些代码,所以有必要了解这它们的用法和生命周期。正文1. 几种组件介绍1.1. 监听器Liste...
Spring Boot实战:拦截器与过滤器 一、拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的。在分析两者的区别之前,我们先理解一下AOP的概念,AOP不是一种具体的技术,而是一种编程思想。在面向对象编程的过程中,我们很容易通过继承、多态来解决纵向扩展。但是对于横向的功能,比如,在所有的service方法中开启事务,或者统一记录日志等功能...
经典算法应用之七----10亿数据中取最大的100个数据 给出三种思路,仅供参考。。1.思路一:根据快速排序划分的思想,每次分割之后只考虑比轴大的一部分,知道比轴大的一部分在比100多的时候,采用传统排序算法排序,取前100个。step1:递归对所有数据分成[a,b),(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数step2:对(b,d]重复 step1操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分ste...
图解排序算法(三)之堆排序 堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶...
mysql实现主从复制/主从同步 业务场景小公司业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响。这个时候 就需要做高可用 两个ngix+两个tomcat+两个mysql实现高可用,避免单点问题。中间使用keepalived监听。下面先从简单的mysql主从搞起。下面按照老方式,what->why->how ,是什么,为什么,怎么做来讲解一波。(what)什么是mysql 的主从复...
Elasticsearch Java API - 客户端连接之TransportClient(TransportClient,PreBuiltXPackTransportClient)(一) Elasticsearch Java API 客户端连接一个是TransportClient,一个是NodeClient,还有一个XPackTransportClientTransportClient:作为一个外部访问者,请求ES的集群,对于集群而言,它是一个外部因素。NodeClient作为ES集群的一个节点,它是ES中的一环,其他的节点对它是感知的。XPackTranspo...
Java 客户端操作 Elasticsearch 目前 Elasticsearch 有很多第三方 Java 客户端如 TransportClient,Jest,Spring Data Elasticsearch(Spring Data 对 Elasticsearch 的整合)还有官方的Java REST ClientSpringBoot 对 Elasticsearch 的支持SpringBoot 为 Elast...
elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client) 2. 回顾 ES的架构3. ES支持的客户端连接方式3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接方式是RESTful风格的,使用http的方式进行连接3.2 Transport 连接 端口 9300 这种连接方式对应于架构图中的Transport这一层,这种客户端连接方式是...
RedisTemplate之opsForValue使用说明 Redis中opsForValue()方法的使用介绍:(主要是对字符串类型的操作)1、set(Kkey,Vvalue) 新增一个字符串类型的值,key是键,value是值。redisTemplate.opsForValue().set("stringValue","bbb"); 2、get(Objectkey) 获取key键对应的值String stri...
git rebase简介(基本篇) 一、基本git rebase用于把一个分支的修改合并到当前分支。假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。$ git checkout -b mywork origin假设远程分支"origin"已经有了2个提交,如图现在我们在这个分支做一些修改,然后生成两个提交(commit).$ vi file.txt$ git commit$ vi o...
时空复杂度(时间复杂度/空间复杂度)O(1)、O(n)、O(n^2)、O(log n)、O(n log n)是什么意思 这些都是算法时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。O(1)解析O(1)就是最低的时空复杂度了,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。 哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找...