springboor操作es 索引以及文档操作
索引操作
创建索引
@Autowired
@Qualifier("restHighLevelClient")
private RestHighLevelClient client;
@Test
void contextLoads() throws IOException {
//创建索引请求
CreateIndexRequest request = new CreateIndexRequest("jie_index");
//执行
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
System.out.println(createIndexResponse);
}
获得索引
//获得索引 判断是否存在
@Test
void test1() throws IOException {
GetIndexRequest request = new GetIndexRequest("jie_index");
boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
System.out.println(exists);
}
删除索引
@Test
void test2() throws IOException {
DeleteIndexRequest request=new DeleteIndexRequest("jie_index");
AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
System.out.println(delete.isAcknowledged());
}
文档操作
添加数据
@Test
public void test2() throws IOException {
User user = new User("jie",18);
IndexRequest request=new IndexRequest("jie_index");
//设置id
request.id("1");
//将数据放进去
request.source(JSON.toJSONString(user), XContentType.JSON);
IndexResponse index = client.index(request, RequestOptions.DEFAULT);
System.out.println(index);
System.out.println(index.status());//返回状态 如created,updated
}

成功添加了数据

获得文档数据
@Test
public void test4() throws IOException{
GetRequest request = new GetRequest("jie_index", "1");
GetResponse response = client.get(request, RequestOptions.DEFAULT);
//打印文档内容
System.out.println(response.getSourceAsString());
}
结果:

更新操作
@Test
public void test5() throws IOException {
UpdateRequest request = new UpdateRequest("jie_index", "1");
User user = new User("修改的jie",20);
request.doc(JSON.toJSONString(user),XContentType.JSON);
UpdateResponse update = client.update(request, RequestOptions.DEFAULT);
System.out.println(update.status());
}
删除操作

批量操作
@Autowired
@Qualifier("restHighLevelClient")
private RestHighLevelClient client;
@Test
public void test() throws IOException {
BulkRequest bulkRequest = new BulkRequest();
bulkRequest.timeout("10s");
ArrayList<User> users = new ArrayList<>();
users.add(new User("jie1",10));
users.add(new User("jie2",11));
users.add(new User("jie3",12));
users.add(new User("jie4",13));
users.add(new User("jie5",14));
for (User user : users) {
bulkRequest.add(
new IndexRequest("jie_index")
.source(JSON.toJSONString(user),XContentType.JSON)
);
}
BulkResponse bulk = client.bulk(bulkRequest, RequestOptions.DEFAULT);
System.out.println(bulk.hasFailures());
}
注意最后是输出是否失败 输出false说明成功了
条件查询
//查询
@Test
void test2() throws IOException {
SearchRequest request = new SearchRequest("jie_index");
SearchSourceBuilder builder = new SearchSourceBuilder();
//构建精确匹配规则
TermQueryBuilder termQueryBuilder = new TermQueryBuilder("name","jie1");
builder.query(termQueryBuilder);
builder.timeout(new TimeValue(10, TimeUnit.SECONDS));
request.source(builder);
SearchResponse search = client.search(request, RequestOptions.DEFAULT);
System.out.println(JSON.toJSONString(search.getHits()));
}

浙公网安备 33010602011771号