ElasticSearch学习(五)—— Java写入数据
ElasticSearch学习(五)—— Java写入数据| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |
| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 15062373| ElasticSearch学习(五)—— Java写入数据| 2021-07-26T17:11:00| | BlogPost|
- 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</span><String, Object> jsonMap = <span style="color: #0000ff;">new</span> HashMap<String, Object><span style="color: #000000;">();
jsonMap.put(</span>"id", "01209"<span style="color: #000000;">);
jsonMap.put(</span>"title", "紅樓夢"<span style="color: #000000;">);
jsonMap.put(</span>"author", "曹雪芹"<span style="color: #000000;">);
jsonMap.put(</span>"classification", "小說"<span style="color: #000000;">);
IndexRequest request </span>= <span style="color: #0000ff;">new</span> IndexRequest("book"<span style="color: #000000;">)
.id(</span>"2"<span style="color: #000000;">).source(jsonMap);
jsonMap.put(</span>"id", "01210"<span style="color: #000000;">);
jsonMap.put(</span>"title", "水滸傳"<span style="color: #000000;">);
jsonMap.put(</span>"author", "施耐庵"<span style="color: #000000;">);
jsonMap.put(</span>"classification", "小說"<span style="color: #000000;">);
IndexRequest request1 </span>= <span style="color: #0000ff;">new</span> IndexRequest("book"<span style="color: #000000;">)
.id(</span>"3"<span style="color: #000000;">).source(jsonMap);
BulkRequest bulkRequest </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> BulkRequest();
bulkRequest.add(request);
bulkRequest.add(request1);
BulkResponse bulkResponse </span>=<span style="color: #000000;"> client.bulk(bulkRequest, RequestOptions.DEFAULT);
</span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (BulkItemResponse bulkItemResponse : bulkResponse) {
DocWriteResponse itemResponse </span>=<span style="color: #000000;"> bulkItemResponse.getResponse();
</span><span style="color: #0000ff;">switch</span><span style="color: #000000;"> (bulkItemResponse.getOpType()) {
</span><span style="color: #0000ff;">case</span><span style="color: #000000;"> INDEX:
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">case</span><span style="color: #000000;"> CREATE:
IndexResponse indexResponse </span>=<span style="color: #000000;"> (IndexResponse) itemResponse;
System.out.println(</span>"新增文档成功!"<span style="color: #000000;">);
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">case</span><span style="color: #000000;"> UPDATE:
UpdateResponse updateResponse </span>=<span style="color: #000000;"> (UpdateResponse) itemResponse;
System.out.println(</span>"更新文档成功!"<span style="color: #000000;">);
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">case</span><span style="color: #000000;"> DELETE:
DeleteResponse deleteResponse </span>=<span style="color: #000000;"> (DeleteResponse) itemResponse;
System.out.println(</span>"删除文档成功!"<span style="color: #000000;">);
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">default</span><span style="color: #000000;">:
}
}
client.close();
}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception e){
e.printStackTrace();
}
}</span></pre>
- 根据索引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();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
e.printStackTrace();
}
}</span></pre>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现