文章目录
灰灰商城-分布式高级篇-2
整合 RestHighLevelClient
导入es的rest-high-level-client
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.2</version>
</dependency>
- 注意Spring Boot(2.2.5版本)中默认整合es版本为6.8.7
需要在pom中指定
<properties>
<elasticsearch.version>7.4.2</elasticsearch.version>
</properties>
添加配置类
- 给容器中注入一个RestHighLevelClient
@Configuration
public class GreymallElasticSearchConfig {
public static final RequestOptions COMMON_OPTIONS;
static {
RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
// builder.addHeader("Authorization", "Bearer " + TOKEN);
// builder.setHttpAsyncResponseConsumerFactory(
// new HttpAsyncResponseConsumerFactory
// .HeapBufferedResponseConsumerFactory(30 * 1024 * 1024 * 1024));
COMMON_OPTIONS = builder.build();
}
/**
* 配置ElasticSearch RestHighLevelClient
* @return
*/
@Bean
public RestHighLevelClient esRestClient(){
return new RestHighLevelClient(
RestClient.builder(
new HttpHost("ES部署的ip", 9200, "http")
));
}
}
保存索引
// 测试保存数据到es
@Test
void indexData() throws IOException {
IndexRequest request = new IndexRequest("users");
request.id("1");
User user = new User();
user.setUserName("wei-xhh");
user.setAge(20);
user.setGender("男");
String jsonString = JSON.toJSONString(user);
request.source(jsonString, XContentType.JSON); // 保存的内容
IndexResponse index