ElasticSearch的RestHighLevelClient高阶操作
1.导入es的高阶客户端
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.2</version>
</dependency>
2.给容器中注入RestHighLevelClient
@Configuration
public class ElasticsearchConfig {
public static final RequestOptions COMMON_OPTIONS;
static {
RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
COMMON_OPTIONS = builder.build();
}
@Bean
public RestHighLevelClient elasticsearchRestHighLevelClient() {
HttpHost httpHost = new HttpHost("192.168.56.10", 9200);
RestClientBuilder builder = RestClient.builder(httpHost);
RestHighLevelClient client = new RestHighLevelClient(builder);
return client;
}
}
3. 自动注入高阶Client
@Autowired
private RestHighLevelClient client;
4. 测试es中保存数据
@Test
void indexData() throws IOException {
IndexRequest indexRequest = new IndexRequest("users");
indexRequest.id("1");
User user = new User();
user.setUsername("张三");
user.setAge(18);
user.setGender("男");
String jsonString = JSON.toJSONString(user);
indexRequest.source(jsonString, XContentType.JSON);
IndexResponse index = client.index(indexRequest, RequestOptions.DEFAULT);
System.out.println(index);
}
5. 测试批量保存数据
@Test
public void bulkTest() throws IOException {
List<Emp> emps = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Emp emp = new Emp();
emp.setId(i);
emp.setName("张益达" + i + "号");
emp.setGender(i % 2 == 0 ? "男" : "女");
emp.setProfession(i % 3 ==