依赖
<!-- org.elasticsearch.client/transport -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>7.13.3</version>
</dependency>
配置
@Configuration
public class ESConfig {
@Bean
public TransportClient getTransportClient() {
Settings settings = Settings.builder()
.put("cluster.name", "elasticsearch").build();
try {
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300))
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9301));
return client;
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
}
@Autowired
private TransportClient transportClient;
插入数据
public void insertData() throws IOException {
IndexResponse response = transportClient
.prepareIndex("myindex", "_doc", "8")
.setSource(XContentFactory.jsonBuilder()
.startObject()
.field("name", "dd ee ff")
.field("age", "24")
.endObject())
.get();
System.out.println(response.getResult());
}
删除数据
public void deleteData() {
DeleteResponse response = transportClient
.prepareDelete("myindex", "_doc", "2")
.get();
System.out.println(response.getResult());
}
修改数据
public void updateData() throws IOException {
UpdateResponse response = transportClient
.prepareUpdate("myindex", "_doc", "2")
.setDoc(XContentFactory.jsonBuilder()
.startObject()
.field("name", "update name")
.endObject())
.get();
System.out.println(response.getResult());
}
查询单条数据
public void getOneData() {
GetResponse response = transportClient.prepareGet("myindex", "_doc", "1")
.get();
String index = response.getIndex();
String type = response.getType();
String id = response.getId();
System.out.println("index:" + index);
System.out.println("type:" + type);
System.out.println("id:" + id);
System.out.println(response.getSourceAsString());
}
查询多条数据
public void getmultipleData() throws Exception {
MultiGetResponse multiGetItemResponses = transportClient.prepareMultiGet()
.add("myindex", "_doc", "1")
.add("myindex", "_doc", "3")
.get();
for (MultiGetItemResponse itemResponse : multiGetItemResponses) {
GetResponse response = itemResponse.getResponse();
if (response.isExists()) {
String index = response.getIndex();
String id = response.getId();
String json = response.getSourceAsString();
String data = "index --> " + index + " id --> " + id + "\ndata --> " + json;
System.out.println(data);
}
}
}
根据分词获取数据
public void getmultipleDatas() throws Exception {
SearchResponse searchResponse = transportClient.prepareSearch("myindex")
.setFetchSource("name", "age")
.get();
SearchHits hits = searchResponse.getHits();
SearchHit[] hits1 = hits.getHits();
Stream.of(hits1).forEach(System.out::println);
}