文档操作 一、添加文档信息 1 2 3 4 5 6 7 8 9 10 User saxon = new User ("saxon" , 1 ); IndexRequest indexRequest=new IndexRequest ("saxon" ); indexRequest.id ("1" ); indexRequest.timeout ("1s" ); String s = JSON.toJSONString (saxon); indexRequest.source (s,XContentType.JSON); IndexResponse index = restHighLevelClient.index (indexRequest, RequestOptions.DEFAULT); System.out.println (index.getVersion ());
指定timeout,就能在timeout时间范围内,将搜索到的部分数据(也可能全部都搜索到),直接返回给client,而不是所有数据搜索到再返回,可以为一些敏感的搜索应用提供良好的支持
提供的信息必须要是json字符串,否则就会添加失败,还是那句话,所有的命令由client执行
二、修改文档的数据 1 2 3 4 UpdateRequest up = new UpdateRequest ("saxon" ,"1" ); up.doc (JSON.toJSONString (new User ("saxonmo" ,202 )),XContentType.JSON); UpdateResponse update = restHighLevelClient.update (up, RequestOptions.DEFAULT); System.out.println (update.status ());
实际上每一个xxxxResponse对应的都是一个命令的返回体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 { "_index" : "saxon" , "_type" : "_doc" , "_id" : "1" , "_version" : 6 , "result" : "updated" , "_shards" : { "total" : 2 , "successful" : 1 , "failed" : 0 }, "_seq_no" : 5 , "_primary_term" : 1 }
三、删除文档数据 1 2 3 4 DeleteRequest deleteRequest=new DeleteRequest ("saxon" ,"1" ); deleteRequest.timeout ("1s" ); DeleteResponse deleteResponse=restHighLevelClient.delete (deleteRequest,RequestOptions.DEFAULT); System.out.println (deleteResponse.status ());
四、查出文档信息 1 2 3 4 5 6 7 8 SearchRequest searchRequest=new SearchRequest ("saxon" ); SearchSourceBuilder Builder = new SearchSourceBuilder (); Builder.query (QueryBuilders.matchQuery ("name" ,"saxon" )); searchRequest.source (Builder); SearchResponse search = restHighLevelClient.search (searchRequest, RequestOptions.DEFAULT); for (SearchHit hit : search.getHits ()) { System.out.println (hit); }