搭建elasticsearch测试工程
Spring Data Elasticsearch
Elasticsearch提供的Java客户端有一些不太方便的地方:
很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的
需要自己把对象序列化为json存储
查询到结果也需要自己反序列化为对象
因此,我们这里就不讲解原生的Elasticsearch客户端API了。
而是学习Spring提供的套件:Spring Data Elasticsearch。
简介
Spring Data Elasticsearch是Spring Data项目下的一个子模块。
查看 Spring Data的官网:http://projects.spring.io/spring-data/
Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。
它使得使用数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得容易。这是一个总括项目,其中包含许多特定于给定数据库的子项目。这些令人兴奋的技术项目背后,是由许多公司和开发人员合作开发的。
Spring Data 的使命是给各种数据访问提供统一的编程接口,不管是关系型数据库(如MySQL),还是非关系数据库(如Redis),或者类似Elasticsearch这样的索引数据库。从而简化开发人员的代码,提高开发效率。
包含很多不同数据操作的模块:
Spring Data Elasticsearch的页面:https://projects.spring.io/spring-data-elasticsearch/
特征:
支持Spring的基于
@Configuration
的java配置方式,或者XML配置方式提供了用于操作ES的便捷工具类
ElasticsearchTemplate
。包括实现文档到POJO之间的自动智能映射。利用Spring的数据转换服务实现的功能丰富的对象映射
基于注解的元数据映射方式,而且可扩展以支持更多不同的数据格式
根据持久层接口自动生成对应实现方法,无需人工编写基本操作代码(类似mybatis,根据接口自动得到实现)。当然,也支持人工定制查询
创建Demo工程
我们使用spring脚手架新建一个demo,学习Elasticsearch
pom依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.learn.demo</groupId><artifactId>elasticsearch</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>elasticsearch</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
application.yml文件配置:
spring:data:elasticsearch:cluster-name: elasticsearchcluster-nodes: 192.168.56.101:9300
实体类及注解
首先我们准备好实体类:
public class Item {Long id;String title; //标题String category;// 分类String brand; // 品牌Double price; // 价格String images; // 图片地址
}
映射
Spring Data通过注解来声明字段的映射属性,有下面的三个注解:
@Document
作用在类,标记实体类为文档对象,一般有四个属性indexName:对应索引库名称
type:对应在索引库中的类型
shards:分片数量,默认5
replicas:副本数量,默认1
@Id
作用在成员变量,标记一个字段作为id主键@Field
作用在成员变量,标记为文档的字段,并指定字段映射属性:type:字段类型,取值是枚举:FieldType
index:是否索引,布尔类型,默认是true
store:是否存储,布尔类型,默认是false
analyzer:分词器名称:ik_max_word
示例:
@Document(indexName = "item",type = "docs", shards = 1, replicas = 0)
public class Item {@Idprivate Long id;@Field(type = FieldType.Text, analyzer = "ik_max_word")private String title; //标题@Field(type = FieldType.Keyword)private String category;// 分类@Field(type = FieldType.Keyword)private String brand; // 品牌@Field(type = FieldType.Double)private Double price; // 价格@Field(index = false, type = FieldType.Keyword)private String images; // 图片地址
}
搭建elasticsearch测试工程相关推荐
- 搭建一个springboot工程测试md5加密
1.展示搭建本次测试所用的springboot工程结构 其中,TestController模拟的是服务端接收post请求,TestMD5模拟的是客户端使用单元测试发送http请求 2.展示pom.xm ...
- 【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点
2019.2.14 情人节,Filecoin项目开放了核心源码仓库go-filecoin,并更新了 filecoin-project organization下的诸多核心成果,这意味着,Filecoi ...
- 如何基于Docker快速搭建Elasticsearch集群?
如何基于Docker快速搭建Elasticsearch集群? Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步 ...
- Dubbo(七)使用SpringBoot搭建dubbo消费者工程
本章将创建一个dubbo 消费者工程并实现远程调用消费者示例.环境:springboot + dubbo + zookeeper, 工程目录如下: 主要步骤: 创建maven工程添加pom依赖 创建S ...
- CentOS7环境下搭建ElasticSearch
搭建环境在11.12.112.209主机,本文件主要说明搭建一个ES,如果多个es,只有让他们的配置文件中的集群名称cluster.name配置成一样,它们就会自动组成一个集群. 一.搭建elasti ...
- 搭建测试环境_当面试时被问到“搭建过测试环境吗”, 身为小白要怎么回答?...
导语:很多人在面试软件测试的过程中,经常被问到"你会搭建测试环境吗"面对这样的提问,你知道怎么回答么?>>>> 怎 么 回 答 面试的时突然被问到,很多人的 ...
- 基于 Win10 平台 搭建 Elasticsearch 集群
基于 Win10 平台搭建 Elasticsearch 集群 1. 基本概念 1.1 单机和集群 1.2 节点 2. 部署集群 3. 启动集群 4. 测试集群 1. 基本概念 1.1 单机和集群 ✨单 ...
- 紫光信息港 软件测试,紫光同创PGL22G开发平台试用连载(3)---以太网测试工程二...
原标题:紫光同创PGL22G开发平台试用连载(3)---以太网测试工程二 续前一篇博文,经过多次对PANGO工具的参数进行修改的尝试,在资源占用率为(LUT-70.02%,Register-36.34 ...
- 基于Docker搭建Elasticsearch集群
一.环境搭建 SpringBoot整合es时使用的集群环境,如果不搭建集群使用SpringBoot整合时会报错:None of the configured nodes are available 我 ...
最新文章
- Java IO - 字符流
- 12分钟训练COCO模型!速度精度双提高
- 坦克大战python_Python语言学了没用?那只能说你是真的没有精通了Python语言
- hbase 特性与api
- 阿里OSS对象存储,实现图片上传进度显示ProgressListener;
- 微信小程序使用组件实现移动端软键盘
- JSP+JavaBean实现简单计算器
- 芯片的原理应用与分类
- Intel服务器芯片组区别,不同芯片组的主板有什么区别?
- flink sql 报错:FlinkRuntimeException: Exceeded checkpoint tolerable failure threshold
- mybatis 父子级树形结构查询
- 额头、太阳穴、两鬓长痘痘怎么回事?
- 计算机学科教育案例怎么写,关于举办2019年学院《计算机应用基础》课程教学改革实验案例征文比赛的通知...
- linux modprobe命令参数
- 因 N-API 发音对黑人的头发不友好,Node.js 官方将其改名为 Node-API
- torch-scatter, torch-cluster, torch-sparse, torch版本对应,cuda
- Tensorflow神经网络预测股票均价
- 通达oa php冲突,通达OA某版本系统存在通用SQL注入(附注射技巧)
- CUIT Online Judge 子段和
- 感觉 C++ 很简单,但为何这么多劝退的?