本文基于springboot2.2.4.RELEASE
在java中操作ES,我选用了elasticsearch-rest-high-level-client,它的初级使用很简单。
配置
首先导入maven依赖
<properties>
<java.version>1.8</java.version>
<elasticsearch.version>7.10.1</elasticsearch.version>
</properties>
<dependencies>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.10.1</version>
</dependency>
</dependencies>
需要注意的是第三行代码<elasticsearch.version>7.10.1</elasticsearch.version>
这个版本要写,因为springboot自带的es依赖版本不一定适合你,这里写你自己的版本来覆盖掉springboot默认的版本。
创建配置类
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class LipsuperElasticsearchConfig {
private static final RequestOptions COMMON_OPTIONS;
static {
RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
COMMON_OPTIONS = builder.build();
}
@Bean
public RestHighLevelClient esClient() {
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
// 单个节点配置
new HttpHost("你的ES所在的IP地址", 9200, "http")));
return client;
}
}
就可以了。在使用到的地方自动注入这个RestHighLevelClient就可以了。
使用
接下来就可以在用到的地方引入RestHighLevelClient
进行操作了。比如:
@Service
public class xxxServiceImpl implements xxxService {
@Autowired
private RestHighLevelClient restHighLevelClient;
// 下面就是实际的操作,比如保存用户信息
@Override
public boolean productStatusUp(List<SkuESModel> skuESModels) throws IOException {
// 往es中批量保存数据
BulkRequest bulkRequest = new BulkRequest();
// User是我假设的,假设User里面包含id,name,age等信息
for (User user : Users) {
IndexRequest indexRequest = new IndexRequest("userinfo");
indexRequest.id(user.getUserId().toString());
String u = JSON.toJSONString(user);
indexRequest.source(u, XContentType.JSON);
}
BulkResponse bulk = restHighLevelClient.bulk(bulkRequest, LipsuperElasticsearchConfig.COMMON_OPTIONS);
// 可选操作
boolean b = bulk.hasFailures();
return b;
}
}
好了,一个简短的Java High Level REST Client整合SpringBoot就是这样。
文章评论