springboot整合ES的基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot整合ES的基本操作相关的知识,希望对你有一定的参考价值。

参考技术A springboot整合ES的基本操作

1,如何整合引入依赖坐标

2,简单的进行测试

首先要明确springboot对于elasticsearch的high-level并没有进行整合,这就表明我们需要手动导入坐标依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>

接下来我们对elasticsearch进行测试

首先我们要测试是否可以开启客户端

@BeforeEach
void setUp()

客户端测试成功后我们再进行第一步简单操作建立一个索引
@Test
void contextLoads() throws IOException

//这一段是对mappings进行设置字段和分子器
String json="\n" +
" "mappings":\n" +
" "properties":\n" +
" "id":\n" +
" "type":"keyword"\n" +
" ,\n" +
" "name":\n" +
" "type":"text",\n" +
" "analyzer":"ik_max_word",\n" +
" "copy_to":"all"\n" +
" ,\n" +
" "type":\n" +
" "type":"keyword"\n" +
" ,\n" +
" "description":\n" +
" "type":"text",\n" +
" "analyzer":"ik_max_word",\n" +
" "copy_to":"all"\n" +
" ,\n" +
" "all":\n" +
" "type":"text",\n" +
" "analyzer":"ik_max_word"\n" +
" \n" +
"\n" +
"\n" +
" \n" +
" \n" +
"\n" +
"\n" +
"";
//request.source()是对请求中参数的设置
request.source(json,XContentType.JSON);
//调用indices方法进行索引的创建
/*
* 这里的request代表我们需要发送一个请求
* RequestOptions.DEFAULT代表这里我们需要一个请求参数,我们这里直接默认就好了
* */
client.indices().create(request,RequestOptions.DEFAULT);

索引建立完毕后我们再添加文档

对于文档的添加我们有两种方式第一种就是单个添加

//这里我直接用了我mysql中的数据
//添加文档 利用json的转换 直接用mysql里面的数据
@Test
void createDoc() throws IOException
book book = bookDao.selectById(1);
System.out.println(book);
IndexRequest request =new IndexRequest("books").id(book.getId().toString());
//将得到的数据转换成json格式
String json= JSON.toJSONString(book);
request.source(json,XContentType.JSON);
//调用index进行文档的添加
client.index(request,RequestOptions.DEFAULT);

第二种就是批量添加文档操作

//批量添加文档
@Test
void createDocMany() throws IOException

在接下来就是查询了

先来个根据id查询

//查询
//按照id查询
@Test
void get() throws IOException

再然后是我们日后常用到的条件查询了

//条件查询
@Test
void ifsearch() throws IOException

// System.out.println(sourceAsString);
System.out.println(book);

SpringBoot整合Jest操作ES

(1)、添加依赖

1         <dependency>
2             <groupId>io.searchbox</groupId>
3             <artifactId>jest</artifactId>
4             <version>6.3.1</version>
5         </dependency>

(2)、配置文件中配置相关属性

1 spring.elasticsearch.jest.uris=http://192.168.205.128:9200

(3)、使用JestClient操作ES

 1     @Autowired
 2     private JestClient jestClient;
 3 
 4     public String add() throws IOException {
 5         User user = new User(1,"fanqi","123456",1);
 6         //构建一个索引
 7         Index index = new Index.Builder(user).index("coreqi").type("user").build();
 8         //执行
 9         DocumentResult result =jestClient.execute(index);
10         return result.getJsonString();
11     }
12 
13     public String search() throws IOException {
14         String searchJson = "{
" +
15                 "    "query": {
" +
16                 "        "match": {
" +
17                 "            "UserName": "fanqi"
" +
18                 "        }
" +
19                 "    }
" +
20                 "}";
21         //构建一个搜索
22         Search search = new Search.Builder(searchJson).addIndex("coreqi").addType("user").build();
23         //执行
24         SearchResult result = jestClient.execute(search);
25         return result.getJsonString();
26     }

 

以上是关于springboot整合ES的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

springboot整合es客户端操作elasticsearch

SpringBoot整合SpringDataElasticSearch操作ES

SpringBoot整合Jest操作ES

ElasticSearch04_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

ElasticSearch04_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

商城项目19_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es