mirror of
https://gitee.com/nutz/nutzboot.git
synced 2024-11-29 18:28:01 +08:00
add: nutzboot-starter-elasticsearch-rest ES高级客户端-官方推荐; elasticsearch: 6.3.2->7.14.0
This commit is contained in:
parent
e5b9212190
commit
a082d52787
@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>nutzboot-demo-simple</artifactId>
|
||||||
|
<groupId>org.nutz</groupId>
|
||||||
|
<version>2.5.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>nutzboot-demo-simple-elasticsearch-rest</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.nutz</groupId>
|
||||||
|
<artifactId>nutzboot-starter-elasticsearch-rest</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-api</artifactId>
|
||||||
|
<version>2.11.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-core</artifactId>
|
||||||
|
<version>2.11.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.nutz</groupId>
|
||||||
|
<artifactId>nutzboot-starter-test-junit4</artifactId>
|
||||||
|
<version>${nutzboot.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,24 @@
|
|||||||
|
package io.nutz.demo.simple;
|
||||||
|
|
||||||
|
import io.nutz.demo.simple.service.UserService;
|
||||||
|
import org.nutz.boot.NbApp;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.log.Log;
|
||||||
|
import org.nutz.log.Logs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by 王庆华 on 2021/8/28.
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
public class MainLauncher {
|
||||||
|
private final static Log log = Logs.get();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
new NbApp().setPrintProcDoc(true).run();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package io.nutz.demo.simple.bean;
|
||||||
|
|
||||||
|
public class User {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
private Long createAt;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCreateAt() {
|
||||||
|
return createAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateAt(Long createAt) {
|
||||||
|
this.createAt = createAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "User{" +
|
||||||
|
"id='" + id + '\'' +
|
||||||
|
", name='" + name + '\'' +
|
||||||
|
", email='" + email + '\'' +
|
||||||
|
", createAt=" + createAt +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,159 @@
|
|||||||
|
package io.nutz.demo.simple.service;
|
||||||
|
|
||||||
|
import io.nutz.demo.simple.bean.User;
|
||||||
|
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
|
||||||
|
import org.elasticsearch.action.bulk.BulkRequest;
|
||||||
|
import org.elasticsearch.action.bulk.BulkResponse;
|
||||||
|
import org.elasticsearch.action.delete.DeleteRequest;
|
||||||
|
import org.elasticsearch.action.delete.DeleteResponse;
|
||||||
|
import org.elasticsearch.action.get.GetRequest;
|
||||||
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
|
import org.elasticsearch.action.index.IndexRequest;
|
||||||
|
import org.elasticsearch.action.index.IndexResponse;
|
||||||
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
|
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
||||||
|
import org.elasticsearch.action.update.UpdateRequest;
|
||||||
|
import org.elasticsearch.action.update.UpdateResponse;
|
||||||
|
import org.elasticsearch.client.RequestOptions;
|
||||||
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
|
import org.elasticsearch.client.indices.CreateIndexRequest;
|
||||||
|
import org.elasticsearch.client.indices.CreateIndexResponse;
|
||||||
|
import org.elasticsearch.client.indices.GetIndexRequest;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||||
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
|
import org.elasticsearch.search.SearchHit;
|
||||||
|
import org.elasticsearch.search.SearchHits;
|
||||||
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.json.Json;
|
||||||
|
import org.nutz.log.Log;
|
||||||
|
import org.nutz.log.Logs;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@IocBean(create = "init")
|
||||||
|
public class UserService {
|
||||||
|
private final static Log log = Logs.get();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private RestHighLevelClient client;
|
||||||
|
|
||||||
|
private String index = User.class.getSimpleName().toLowerCase();
|
||||||
|
|
||||||
|
public void init() throws Exception {
|
||||||
|
boolean exists = client.indices().exists(new GetIndexRequest(index), RequestOptions.DEFAULT);
|
||||||
|
if (!exists) {
|
||||||
|
createIndex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createIndex() throws IOException {
|
||||||
|
final CreateIndexResponse createIndexResponse;
|
||||||
|
createIndexResponse = client.indices().create(new CreateIndexRequest(index), RequestOptions.DEFAULT);
|
||||||
|
log.debug("createIndex ack:" + createIndexResponse.isAcknowledged());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteIndex() throws IOException {
|
||||||
|
final AcknowledgedResponse response = client.indices().delete(new DeleteIndexRequest(index), RequestOptions.DEFAULT);
|
||||||
|
log.debug("deleteIndex ack:" + response.isAcknowledged());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addUser(User user) throws IOException {
|
||||||
|
final IndexRequest indexRequest = new IndexRequest();
|
||||||
|
indexRequest.index(index)
|
||||||
|
.id(user.getId() != null ? user.getId() : null);
|
||||||
|
|
||||||
|
indexRequest.source(Json.toJson(user), XContentType.JSON);
|
||||||
|
IndexResponse index = client.index(indexRequest, RequestOptions.DEFAULT);
|
||||||
|
log.debug("addUser result:" + index.getResult());
|
||||||
|
return index.getResult().name().equals("CREATED");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void batchInsert(List<User> users) throws IOException {
|
||||||
|
BulkRequest bulkRequest = new BulkRequest();
|
||||||
|
users.forEach(user -> {
|
||||||
|
bulkRequest.add(new IndexRequest().index(index).id(user.getId() != null ? user.getId() : null)
|
||||||
|
.source(Json.toJson(user), XContentType.JSON));
|
||||||
|
});
|
||||||
|
BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
||||||
|
log.debug(Json.toJson(bulkResponse.getItems()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUser(String userId) throws IOException {
|
||||||
|
final DeleteResponse response = client.delete(new DeleteRequest(index, userId), RequestOptions.DEFAULT);
|
||||||
|
return response.getResult().name().equals("DELETED");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void batchDeleteUser(String[] userIds) throws IOException {
|
||||||
|
BulkRequest bulkRequest = new BulkRequest();
|
||||||
|
for (String userId : userIds) {
|
||||||
|
bulkRequest.add(new DeleteRequest().index(index).id(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
final BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
||||||
|
log.debug(Json.toJson(bulkResponse.getItems()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean updateUser(User user) throws IOException {
|
||||||
|
UpdateRequest request = new UpdateRequest();
|
||||||
|
request.index(index).id(user.getId());
|
||||||
|
request.doc(new IndexRequest().source(Json.toJson(user), XContentType.JSON));
|
||||||
|
|
||||||
|
final UpdateResponse response = client.update(request, RequestOptions.DEFAULT);
|
||||||
|
log.debug("updateUser:" + response.getResult());
|
||||||
|
return response.getResult().name().equals("UPDATED");
|
||||||
|
}
|
||||||
|
|
||||||
|
public User fetchUser(String userId) throws IOException {
|
||||||
|
final GetResponse documentFields = client.get(new GetRequest(index, userId), RequestOptions.DEFAULT);
|
||||||
|
return Json.fromJson(User.class, documentFields.getSourceAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<User> query(String name, String email) throws IOException {
|
||||||
|
SearchRequest request = new SearchRequest();
|
||||||
|
request.indices("user");
|
||||||
|
final SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
|
||||||
|
final BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
|
|
||||||
|
boolQueryBuilder.must(QueryBuilders.matchQuery("name", name))
|
||||||
|
.must(QueryBuilders.matchQuery("email", email));
|
||||||
|
|
||||||
|
sourceBuilder.query(boolQueryBuilder);
|
||||||
|
request.source(sourceBuilder);
|
||||||
|
|
||||||
|
final SearchResponse response = client.search(request, RequestOptions.DEFAULT);
|
||||||
|
final SearchHits hits = response.getHits();
|
||||||
|
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
|
for (SearchHit hit : hits) {
|
||||||
|
users.add(Json.fromJson(User.class, hit.getSourceAsString()));
|
||||||
|
}
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<User> queryPage(String name, Integer pageNumber, Integer pageSize) throws IOException {
|
||||||
|
SearchRequest request = new SearchRequest();
|
||||||
|
request.indices(index);
|
||||||
|
final SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().query(
|
||||||
|
QueryBuilders.termQuery("name", name));
|
||||||
|
|
||||||
|
sourceBuilder.from((pageNumber - 1) * pageSize);
|
||||||
|
sourceBuilder.size(pageSize);
|
||||||
|
request.source(sourceBuilder);
|
||||||
|
|
||||||
|
final SearchResponse response = client.search(request, RequestOptions.DEFAULT);
|
||||||
|
final SearchHits hits = response.getHits();
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
|
for (SearchHit hit : hits) {
|
||||||
|
users.add(Json.fromJson(User.class, hit.getSourceAsString()));
|
||||||
|
}
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
elasticsearch.host=127.0.0.1:9200
|
@ -0,0 +1,7 @@
|
|||||||
|
log4j.rootLogger=debug,Console
|
||||||
|
|
||||||
|
log4j.logger.org.nutz=debug
|
||||||
|
|
||||||
|
log4j.appender.Console=org.apache.log4j.ConsoleAppender
|
||||||
|
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.Console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] %5p [%t] --- %c{1}: %m%n
|
@ -0,0 +1,6 @@
|
|||||||
|
appender.console.type = Console
|
||||||
|
appender.console.name = console
|
||||||
|
appender.console.layout.type = PatternLayout
|
||||||
|
|
||||||
|
rootLogger.level = info
|
||||||
|
rootLogger.appenderRef.console.ref = console
|
@ -0,0 +1,152 @@
|
|||||||
|
package io.nutz.demo.simple.service;
|
||||||
|
|
||||||
|
import io.nutz.demo.simple.MainLauncher;
|
||||||
|
import io.nutz.demo.simple.bean.User;
|
||||||
|
import org.junit.*;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.MethodSorters;
|
||||||
|
import org.nutz.boot.NbApp;
|
||||||
|
import org.nutz.boot.test.junit4.NbJUnit4Runner;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.json.Json;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
|
import org.nutz.lang.Times;
|
||||||
|
import org.nutz.lang.random.R;
|
||||||
|
import org.nutz.log.Log;
|
||||||
|
import org.nutz.log.Logs;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@IocBean
|
||||||
|
@RunWith(NbJUnit4Runner.class)
|
||||||
|
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||||
|
public class UserServiceTest {
|
||||||
|
Log log = Logs.get();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test01_AddUser() {
|
||||||
|
User user = new User();
|
||||||
|
user.setId(R.UU32());
|
||||||
|
user.setName("wendal");
|
||||||
|
user.setEmail("wendal@gmail.com");
|
||||||
|
user.setCreateAt(Times.getTS());
|
||||||
|
try {
|
||||||
|
Assert.assertTrue(userService.addUser(user));
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test02_batchInsert() {
|
||||||
|
try {
|
||||||
|
User user1 = new User();
|
||||||
|
user1.setId("1001");
|
||||||
|
user1.setName("wendal");
|
||||||
|
user1.setEmail("wendal@gmail.com");
|
||||||
|
user1.setCreateAt(Times.getTS());
|
||||||
|
|
||||||
|
User user2 = new User();
|
||||||
|
user2.setId("1002");
|
||||||
|
user2.setName("wizzer");
|
||||||
|
user2.setEmail("wizzer@gmail.com");
|
||||||
|
user2.setCreateAt(Times.getTS());
|
||||||
|
|
||||||
|
User user3 = new User();
|
||||||
|
user3.setId("1003");
|
||||||
|
user3.setName("Eggsblue");
|
||||||
|
user3.setEmail("topcodermydream@gmail.com");
|
||||||
|
user3.setCreateAt(Times.getTS());
|
||||||
|
|
||||||
|
userService.batchInsert(Lang.list(user1, user2, user3));
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test03_fetchUser() {
|
||||||
|
try {
|
||||||
|
final User user = userService.fetchUser("1002");
|
||||||
|
log.debug("user:" + user);
|
||||||
|
Assert.assertNotNull(user);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test04_query() {
|
||||||
|
try {
|
||||||
|
final List<User> list = userService.query("wendal", "wendal@gmail.com");
|
||||||
|
log.info("query:" + Json.toJson(list));
|
||||||
|
Assert.assertNotNull(list);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test05_queryPage() {
|
||||||
|
try {
|
||||||
|
final List<User> list = userService.queryPage("wendal", 1, 10);
|
||||||
|
log.info("queryPage:" + Json.toJson(list));
|
||||||
|
Assert.assertNotNull(list);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test06_deleteUser() {
|
||||||
|
try {
|
||||||
|
Assert.assertTrue(userService.deleteUser("1003"));
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test07_updateUser() {
|
||||||
|
try {
|
||||||
|
User user = new User();
|
||||||
|
user.setId("1001");
|
||||||
|
user.setName("Eggsblue-1");
|
||||||
|
user.setEmail("1719411461@qq.com");
|
||||||
|
|
||||||
|
Assert.assertTrue(userService.updateUser(user));
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test08_batchDeleteUser() {
|
||||||
|
try {
|
||||||
|
userService.batchDeleteUser(Lang.array("1002", "1003"));
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void after() {
|
||||||
|
try {
|
||||||
|
userService.deleteIndex();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static NbApp createNbApp() {
|
||||||
|
NbApp nb = new NbApp().setMainClass(MainLauncher.class);
|
||||||
|
nb.getAppContext().setMainPackage("io.nutz");
|
||||||
|
return nb;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -20,15 +20,16 @@
|
|||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
<artifactId>log4j-api</artifactId>
|
<artifactId>log4j-api</artifactId>
|
||||||
<version>2.11.0</version>
|
<version>2.11.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
<artifactId>log4j-core</artifactId>
|
<artifactId>log4j-core</artifactId>
|
||||||
<version>2.13.2</version>
|
<version>2.11.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ public class UserService {
|
|||||||
log.debug("srb:::\r\n" + srb.toString());
|
log.debug("srb:::\r\n" + srb.toString());
|
||||||
SearchResponse response = srb.execute().actionGet();
|
SearchResponse response = srb.execute().actionGet();
|
||||||
SearchHits hits = response.getHits();
|
SearchHits hits = response.getHits();
|
||||||
page.setTotalCount((int) hits.getTotalHits());
|
page.setTotalCount(hits.getHits().length);
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
hits.forEach(searchHit -> {
|
hits.forEach(searchHit -> {
|
||||||
Map<String, Object> source = searchHit.getSourceAsMap();
|
Map<String, Object> source = searchHit.getSourceAsMap();
|
||||||
@ -166,7 +166,7 @@ public class UserService {
|
|||||||
log.debug("srb:::\r\n" + srb.toString());
|
log.debug("srb:::\r\n" + srb.toString());
|
||||||
SearchResponse response = srb.execute().actionGet();
|
SearchResponse response = srb.execute().actionGet();
|
||||||
SearchHits hits = response.getHits();
|
SearchHits hits = response.getHits();
|
||||||
if (hits.getTotalHits() > 0)
|
if (hits.getHits().length > 0)
|
||||||
return hits.getAt(0).getSourceAsMap();
|
return hits.getAt(0).getSourceAsMap();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -2,16 +2,15 @@ package io.nutz.demo.simple.utils;
|
|||||||
|
|
||||||
import org.elasticsearch.action.DocWriteResponse;
|
import org.elasticsearch.action.DocWriteResponse;
|
||||||
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
|
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
|
||||||
import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
|
|
||||||
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
|
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
|
||||||
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;
|
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;
|
||||||
import org.elasticsearch.action.admin.indices.exists.types.TypesExistsRequest;
|
import org.elasticsearch.action.admin.indices.exists.types.TypesExistsRequest;
|
||||||
import org.elasticsearch.action.admin.indices.exists.types.TypesExistsResponse;
|
import org.elasticsearch.action.admin.indices.exists.types.TypesExistsResponse;
|
||||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
|
|
||||||
import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
||||||
import org.elasticsearch.action.delete.DeleteResponse;
|
import org.elasticsearch.action.delete.DeleteResponse;
|
||||||
import org.elasticsearch.action.index.IndexResponse;
|
import org.elasticsearch.action.index.IndexResponse;
|
||||||
|
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
||||||
import org.elasticsearch.client.Requests;
|
import org.elasticsearch.client.Requests;
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
@ -69,8 +68,7 @@ public class ElasticsearchUtil {
|
|||||||
* @return true/false
|
* @return true/false
|
||||||
*/
|
*/
|
||||||
public boolean deleteIndex(String indexName) {
|
public boolean deleteIndex(String indexName) {
|
||||||
DeleteIndexResponse response =
|
final AcknowledgedResponse response = getClient().admin().indices().prepareDelete(indexName).execute().actionGet();
|
||||||
getClient().admin().indices().prepareDelete(indexName).execute().actionGet();
|
|
||||||
return response.isAcknowledged();
|
return response.isAcknowledged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,7 +91,7 @@ public class ElasticsearchUtil {
|
|||||||
*/
|
*/
|
||||||
public boolean putMapping(String indexName, String type, XContentBuilder mapping) {
|
public boolean putMapping(String indexName, String type, XContentBuilder mapping) {
|
||||||
PutMappingRequest mappingRequest = Requests.putMappingRequest(indexName).type(type).source(mapping);
|
PutMappingRequest mappingRequest = Requests.putMappingRequest(indexName).type(type).source(mapping);
|
||||||
PutMappingResponse response = getClient().admin().indices().putMapping(mappingRequest).actionGet();
|
AcknowledgedResponse response = getClient().admin().indices().putMapping(mappingRequest).actionGet();
|
||||||
return response.isAcknowledged();
|
return response.isAcknowledged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
<module>nutzboot-demo-simple-jetty-nacos-config-client</module>
|
<module>nutzboot-demo-simple-jetty-nacos-config-client</module>
|
||||||
<module>nutzboot-demo-simple-webjars</module>
|
<module>nutzboot-demo-simple-webjars</module>
|
||||||
<module>nutzboot-demo-simple-jasypt</module>
|
<module>nutzboot-demo-simple-jasypt</module>
|
||||||
|
<module>nutzboot-demo-simple-elasticsearch-rest</module>
|
||||||
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
27
nutzboot-starter/nutzboot-starter-elasticsearch-rest/pom.xml
Normal file
27
nutzboot-starter/nutzboot-starter-elasticsearch-rest/pom.xml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>nutzboot-starter</artifactId>
|
||||||
|
<groupId>org.nutz</groupId>
|
||||||
|
<version>2.5.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>nutzboot-starter-elasticsearch-rest</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.elasticsearch</groupId>
|
||||||
|
<artifactId>elasticsearch</artifactId>
|
||||||
|
<version>${elasticsearch.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.elasticsearch.client</groupId>
|
||||||
|
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
||||||
|
<version>${elasticsearch.version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,61 @@
|
|||||||
|
package org.nutz.boot.starter.elasticsearch.rest;
|
||||||
|
|
||||||
|
import org.apache.http.HttpHost;
|
||||||
|
import org.elasticsearch.client.RestClient;
|
||||||
|
import org.elasticsearch.client.RestClientBuilder;
|
||||||
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
|
import org.nutz.boot.annotation.PropDoc;
|
||||||
|
import org.nutz.boot.starter.ServerFace;
|
||||||
|
import org.nutz.ioc.Ioc;
|
||||||
|
import org.nutz.ioc.impl.PropertiesProxy;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.log.Log;
|
||||||
|
import org.nutz.log.Logs;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by 王庆华 on 2021/8/28.
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
public class ElasticsearchStarter implements ServerFace {
|
||||||
|
private final static Log log = Logs.get();
|
||||||
|
|
||||||
|
@Inject("refer:$ioc")
|
||||||
|
protected Ioc ioc;
|
||||||
|
@Inject
|
||||||
|
protected PropertiesProxy conf;
|
||||||
|
|
||||||
|
protected static final String PRE = "elasticsearch.";
|
||||||
|
|
||||||
|
@PropDoc(value = "Elasticsearch的主机地址", defaultValue = "127.0.0.1:9200", need = true)
|
||||||
|
public static final String PROP_HOST = PRE + "host";
|
||||||
|
|
||||||
|
public void start() throws Exception {
|
||||||
|
ioc.get(RestHighLevelClient.class, "elasticsearchClient");
|
||||||
|
}
|
||||||
|
|
||||||
|
@IocBean(name = "elasticsearchClient", depose = "close")
|
||||||
|
public RestHighLevelClient getElasticsearchClient() {
|
||||||
|
log.debug("loading elasticsearchClient...");
|
||||||
|
|
||||||
|
final String hosts_str = conf.get(PROP_HOST, "127.0.0.1:9200");
|
||||||
|
List<HttpHost> httpHostList = new ArrayList<>();
|
||||||
|
if (hosts_str.indexOf(",") != -1) {
|
||||||
|
for (String ht : hosts_str.split(",")) {
|
||||||
|
httpHostList.add(new HttpHost(ht.split(":")[0], Integer.valueOf(ht.split(":")[1])));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
httpHostList.add(new HttpHost(hosts_str.split(":")[0], Integer.valueOf(hosts_str.split(":")[1])));
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpHost[] httpHosts = new HttpHost[httpHostList.size()];
|
||||||
|
for (int i = 0; i < httpHostList.size(); i++) {
|
||||||
|
httpHosts[i] = httpHostList.get(i);
|
||||||
|
}
|
||||||
|
final RestClientBuilder builder = RestClient.builder(httpHosts);
|
||||||
|
return new RestHighLevelClient(builder);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
org.nutz.boot.starter.elasticsearch.rest.ElasticsearchStarter
|
@ -85,6 +85,7 @@
|
|||||||
<module>nutzboot-starter-swagger3</module>
|
<module>nutzboot-starter-swagger3</module>
|
||||||
<module>nutzboot-starter-jasypt</module>
|
<module>nutzboot-starter-jasypt</module>
|
||||||
<module>nutzboot-starter-test</module>
|
<module>nutzboot-starter-test</module>
|
||||||
|
<module>nutzboot-starter-elasticsearch-rest</module>
|
||||||
</modules>
|
</modules>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
2
pom.xml
2
pom.xml
@ -40,7 +40,7 @@
|
|||||||
<HikariCP.version>3.2.0</HikariCP.version>
|
<HikariCP.version>3.2.0</HikariCP.version>
|
||||||
<thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
|
<thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
|
||||||
<quartz.version>2.3.2</quartz.version>
|
<quartz.version>2.3.2</quartz.version>
|
||||||
<elasticsearch.version>6.3.2</elasticsearch.version>
|
<elasticsearch.version>7.14.0</elasticsearch.version>
|
||||||
<commons.email.version>1.4</commons.email.version>
|
<commons.email.version>1.4</commons.email.version>
|
||||||
<commons.net.version>3.6</commons.net.version>
|
<commons.net.version>3.6</commons.net.version>
|
||||||
<javassist.version>3.24.0-GA</javassist.version>
|
<javassist.version>3.24.0-GA</javassist.version>
|
||||||
|
Loading…
Reference in New Issue
Block a user