ES客户端
ES提供多种不同的客户端:
1、TransportClient
ES提供的传统客户端,官方计划8.0版本删除此客户端。
2、RestClient
RestClient是官方推荐使用的,它包括两种:REST Low Level Client和 REST High Level Client。ES在6.0之后提供REST High Level Client, 两种客户端官方更推荐使用 REST High Level Client,不过当前它还处于完善中,有些功能还没有。
环境
依赖
搭建好springboot工程后引入依赖
<!--es版本号-->
<properties>
<elasticsearch.version>6.2.3</elasticsearch.version>
</properties>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${
elasticsearch.version}</version>
</dependency>
配置文件
搜索引擎虽然好用,但如果我们不告诉它去哪里使用,也是白搭
spring:
elasticsearch:
rest:
uris:
- http://192.168.204.132:9200
使用
建库建表
public class IndexWriterTest {
//获取es客户端
@Autowired
private RestHighLevelClient restHighLevelClient;
@Test
public void testCreateIndex() throws IOException {
//获取操作索引库的对象
IndicesClient indicesClient = restHighLevelClient.indices();
//创建索引库请求对象
CreateIndexRequest createIndexRequest = new CreateIndexRequest("java2022");
//建库使用source方法,并且数据格式为Json
createIndexRequest.source("{\n" +
" \"settings\":{\n" +
" \"number_of_shards\" : 2,\n" +
" \"number_of_replicas\" : 0\n" +
" }\n" +
"}", XContentType.JSON);
//建表使用mapping创建映射,数据格式依然为Json
createIndexRequest.mapping("course","{\n" +
" \"_source\": {\n" +
" \"excludes\":[\"description\"]\n" +
" }, \n" +
" \t\"properties\": {\n" +
" \"name\": {\n" +
" \"type\": \"text\",\n" +
" \"analyzer\":\"ik_max_word\",\n" +
" \"search_analyzer\":\"ik_smart\"\n" +
" },\n" +
" \"description\": {\n" +
" \"type\": \"text\",\n" +
" \"analyzer\":\"ik_max_word\",\n" +
" \"search_analyzer\":\"ik_smart\"\n" +
" },\n" +
" \"studymodel\": {\n" +
" \"type\": \"keyword\"\n" +
" },\n" +
" \"price\": {\n" +
" \"type\": \"float\"\n" +
" },\n" +
" \"pic\":{\n" +
"\t\t \"type\":\"text\",\n" +
"\t\t \"index\":false\n" +
"\t }\n" +
" }\n" +
"}", XContentType.JSON);
indicesClient.create(createIndexRequest);
}
}
添加数据
单条添加
@Test
public void testAddDoc() throws IOException {
//创建index请求,设置操作的库,表与索引
IndexRequest indexRequest = new IndexRequest("java2022","course","1");
//设置数据信息,数据格式为Json
indexRequest