Elasticsearch文档分析器
分析器测试
根据使用的文档分析器和测试的文本,给出分词结果
GET http://localhost:9200/_analyze
{
"analyzer": "standard",
"text": "Text to analyze"
}
标准分词器standard,适用于英文分词,不适用于中文,对中文只进行单字切分
IK分词器ik_max_word,对中文进行细粒度的切分,会对结果再继续尝试切分,直到不能切分为止。例如“中华人民共和国国歌”将切分为“中华人民共和国”、“中华人民”、“中华”、“华人”、“人民共和国”、“人民”、“人”、“民”、“共和国”、“共和”、“和”、“国国”、“国歌”
IK分词器ik_smart,对中文进行粗粒度的切分,。例如“中华人民...
Python基本语法
基本语法
注释
# 注释
输入输出函数
# 输入
input("请输入:")
# 打印
print("xxx")
变量操作
# 赋值
a = 100
b = 200
c = 300
# 序列解包赋值,左侧变量数量与右侧序列元素数一致
t = (100, 200, 300)
l = [100, 200, 300]
s = "edf"
a, b, c = t
a, b, c = l
a, b, c = s
a, b, c = 100, 200, 300
# 左侧变量数量与右侧序列元素数不一致,剩余的给到最后一个变量
a, *b = t
# 匿名变量,约定使用下划线表示
_ = 1
# 删除变量
del a
命名约定
# 模块
module_name
# 包
...
Python环境搭建
操作系统
本文的环境搭建基于Windows操作系统
Python
下载对应版本的Python安装包,安装即可
https://www.python.org/downloads/
Anaconda
下载安装包并安装
https://www.anaconda.com/download
使用Anaconda不需要预先装Python,Anaconda可创建完整的环境
配置环境变量
变量
值
ANACONDA_HOME
C:\ProgramData\Anaconda3
Path
%ANACONDA_HOME%
...
Dubbo常用配置
基础环境
本文基于Spring Boot模块使用Dubbo
配置方式
以下配置方式,优先级从低到高排列
全局级配置,服务提供者
dubbo:
provider:
timeout: 2000
全局级配置,服务消费者
dubbo:
consumer:
timeout: 2000
服务级配置,服务提供者
package com.oliverclio.order.service;
import com.oliverclio.api.order.dto.OrderDto;
import com.oliverclio.api.order.service.OrderService;
import com.oliverclio....
Dubbo服务架构模块搭建
基础环境
本文基于Spring Boot模块使用Dubbo,分为三个Spring Boot模块,包括公共模块(api)、服务提供者模块(order)、服务消费者模块(business)。
注册中心
Dubbo需要依赖一个配置中心,本文以Zookeeper为例,需要先部署好一个Zookeeper。
Zookeeper在Docker下安装
公共模块
增加Dubbo相关依赖
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<...
RestTemplate使用
底层选择
RestTemplate只做封装,没有自己实现的底层。发送HTTP请求是同步阻塞式
源码HttpAccessor
ClientHttpRequestFactory默认是SimpleClientHttpRequestFactory,底层使用JDK的HttpURLConnection,不支持HTTP的PATCH方法。
底层切换为okHTTP
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.7.2</version>
<...
Spring定时任务使用
注解方式
基于Spring Boot项目
@SpringBootApplication
@EnableScheduling
public class EmqxHttpLoggerApplication {
public static void main(String[] args) {
SpringApplication.run(EmqxHttpLoggerApplication.class, args);
}
}
@Component
@AllArgsConstructor
public class MqttLogScheduler {
private final MqttLogMapper m...
Maven依赖范围与传递性
scope属性
compile,默认值,表示此依赖包出现在任何classpath内,依赖传递
test,表示此依赖包只出现在与测试相关的classpath内,默认情况下,只有src/main/test/java路径下的类可以引入此依赖包中的类,依赖不传递
provided,表示此依赖出现在非运行时环境的classpath内,依赖不传递
runtime,表示此依赖出现在与测试相关和运行时的classpath,依赖传递
system,表示此依赖出现在非运行时环境的classpath内,依赖不传递
optional属性
false,默认值,表示传递性由scope属性来指定
true,表示依赖不传递
对打包的影响
Maven打JAR包默认不会...
基于MyBatis-Plus实现自定义通用数据库服务
实体
公用实体类
package com.oc.odm.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class OdmCommonEntity implements Serializable {
/**
* ID
*/
...
Java运行时泛型信息使用
概述
由于Java泛型擦除机制,运行时无法获取本类的泛型信息,但父类或实现的接口的泛型类型信息会记录到类签名信息中。因此,假如我们需要在运行时获取本类的泛型信息,可以通过在创建本类对象的时候创建本类的匿名内部类的子类对象的方法实现。
创建匿名内部类的子类对象
创建对象时后面加上{}
List<String> list = new ArrayList<>() {};
获取父类或接口的泛型信息
Type接口是类型信息相关类的统一接口,带泛型类型的实现类为ParameterizedType,不带泛型的实现类为Class
获取父类的泛型信息
private Type getParameterizedType(int index) {
Type ...
332 post articles, 34 pages.