ElasticSearch學習(五)—— Java寫入數據

  • 7.2.0版本
  • 獲取客戶端連接
private static int port = 9200;
private static String host = "192.168.1.105";
 
private static RestHighLevelClient getClient() {
    RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(new HttpHost(host, port, "http")));
    return client;
}
  • 批量添加數據
/**
     * bulk批量添加
      */
    public static void batchAddDocuments(){
        try {
            RestHighLevelClient client = getClient();
 
            Map<String, Object> jsonMap = new HashMap<String, Object>();
            jsonMap.put("id", "01209");
            jsonMap.put("title", "紅樓夢");
            jsonMap.put("author", "曹雪芹");
            jsonMap.put("classification", "小說");
            IndexRequest request = new IndexRequest("book")
                    .id("2").source(jsonMap);
 
            jsonMap.put("id", "01210");
            jsonMap.put("title", "水滸傳");
            jsonMap.put("author", "施耐庵");
            jsonMap.put("classification", "小說");
            IndexRequest request1 = new IndexRequest("book")
                    .id("3").source(jsonMap);
 
            BulkRequest bulkRequest = new BulkRequest();
            bulkRequest.add(request);
            bulkRequest.add(request1);
 
            BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);
            for (BulkItemResponse bulkItemResponse : bulkResponse) {
                DocWriteResponse itemResponse = bulkItemResponse.getResponse();
                switch (bulkItemResponse.getOpType()) {
                    case INDEX:
                        break;
                    case CREATE:
                        IndexResponse indexResponse = (IndexResponse) itemResponse;
                        System.out.println("新增文檔成功!");
                        break;
                    case UPDATE:
                        UpdateResponse updateResponse = (UpdateResponse) itemResponse;
                        System.out.println("更新文檔成功!");
                        break;
                    case DELETE:
                        DeleteResponse deleteResponse = (DeleteResponse) itemResponse;
                        System.out.println("刪除文檔成功!");
                        break;
                    default:
                }
            }
            client.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
  • 根據索引id刪除
/**
     * 根據索引id刪除
     */
    public static void deleteDocument(){
        try {
            RestHighLevelClient client = getClient();
            DeleteRequest request = new DeleteRequest(
                    "ancientbook",
                    "2607");
            DeleteResponse deleteResponse = client.delete(
                    request, RequestOptions.DEFAULT);
            System.out.println(deleteResponse.getResult());
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  • 根據索引id獲取
/**
     * 根據索引id獲取
     */
    public static void getIndex() {
        try {
            RestHighLevelClient client = getClient();
            GetRequest getRequest = new GetRequest(
                    "ancientbook",
                    "2607");
            GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);
            String index = getResponse.getIndex();
            String id = getResponse.getId();
            if (getResponse.isExists()) {
                long version = getResponse.getVersion();
                String sourceAsString = getResponse.getSourceAsString();
                Map<String, Object> sourceAsMap = getResponse.getSourceAsMap();
                byte[] sourceAsBytes = getResponse.getSourceAsBytes();
                System.out.println("index:" + index);
                System.out.println("id:" + id);
                System.out.println("version:" + version);
                System.out.println("sourceAsString:" + sourceAsString);
                System.out.println("sourceAsMap:" + sourceAsMap);
                System.out.println("sourceAsBytes:" + sourceAsBytes);
            } else {
 
            }
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

(1條消息) ElasticSearch學習(五)—— Java寫入數據_yilia_jia的博客-CSDN博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章