From f94a5a1d3fe9bde0e599d41f2d97caea1b08a88d Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期一, 29 六月 2020 15:48:12 +0800
Subject: [PATCH] 免单调整
---
fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java | 74 ++++++++++++++++++++++--------------
1 files changed, 45 insertions(+), 29 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java
index 5c149e7..d5e227c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java
+++ b/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java
@@ -5,7 +5,8 @@
import java.util.List;
import java.util.concurrent.TimeUnit;
-import org.apache.http.HttpHost;
+import javax.annotation.Resource;
+
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
@@ -14,8 +15,6 @@
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.client.RequestOptions;
-import org.elasticsearch.client.RestClient;
-import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilders;
@@ -24,22 +23,36 @@
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.stereotype.Repository;
import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.elasticsearch.Document;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.service.manger.ElasticManger;
+
+
@Repository
public abstract class ElasticBaseDao<T> {
- // 鍦板潃
- private static String host = "192.168.1.200";
- // 绔彛
- private static Integer port = 9200;
- // 鏁版嵁搴撳悕绉�
- public static String index = "order";
- // 鍒濆鍖朼pi瀹㈡埛绔�
- public static RestHighLevelClient client = new RestHighLevelClient(
- RestClient.builder(new HttpHost(host, port, "http")));
+ @Resource
+ protected ElasticManger elasticManger;
+
+
+ /**
+ * 鑾峰彇index
+ * @param bean
+ * @return
+ */
+ public String getDocument(Class<?> entityClass) {
+ if (entityClass.isAnnotationPresent(Document.class)) {
+ Document doc = (Document)entityClass.getAnnotation(Document.class);
+ return doc.indexName();
+ }
+ String name = entityClass.getName();
+ return name.substring(name.lastIndexOf(".") + 1, name.length());
+ }
+
+
/**
* 鎻掑叆鏁版嵁
@@ -48,12 +61,13 @@
* @return
*/
public void save(T bean) {
+ String document = getDocument(bean.getClass());
String json = JsonUtil.getSimpleGson().toJson(bean);
- IndexRequest request = new IndexRequest(index);
+ IndexRequest request = new IndexRequest(document);
request.source(json, XContentType.JSON);
// 鍚屾鎵ц
try {
- client.index(request, RequestOptions.DEFAULT);
+ elasticManger.getClient().index(request, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
@@ -66,12 +80,14 @@
* @return
*/
public void save(T bean, String id) {
+ String document = getDocument(bean.getClass());
+
String json = JsonUtil.getSimpleGson().toJson(bean);
- IndexRequest request = new IndexRequest(index).id(id);
+ IndexRequest request = new IndexRequest(document).id(id);
request.source(json, XContentType.JSON);
// 鍚屾鎵ц
try {
- client.index(request, RequestOptions.DEFAULT);
+ elasticManger.getClient().index(request, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
@@ -83,11 +99,13 @@
* @param bean
*/
public void update(String id, T bean) {
- UpdateRequest request = new UpdateRequest(index, id);
+ String document = getDocument(bean.getClass());
+
+ UpdateRequest request = new UpdateRequest(document, id);
String json = new GsonBuilder().create().toJson(bean);
request.doc(json, XContentType.JSON);
try {
- client.update(request, RequestOptions.DEFAULT);
+ elasticManger.getClient().update(request, RequestOptions.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
@@ -99,10 +117,11 @@
*
* @param Document id
*/
- public void delete(String id) {
- DeleteRequest request = new DeleteRequest(index, id);
+ public void delete(String id, Class<T> entityClass) {
+ String document = getDocument(entityClass);
+ DeleteRequest request = new DeleteRequest(document, id);
try {
- client.delete(request, RequestOptions.DEFAULT);
+ elasticManger.getClient().delete(request, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
@@ -115,9 +134,10 @@
* @return
*/
public T get(String id, Class<T> entityClass) {
- GetRequest request = new GetRequest(index, id);
+ String document = getDocument(entityClass);
+ GetRequest request = new GetRequest(document, id);
try {
- GetResponse getResponse = client.get(request, RequestOptions.DEFAULT);
+ GetResponse getResponse = elasticManger.getClient().get(request, RequestOptions.DEFAULT);
if (getResponse.isExists()) {
String content = getResponse.getSourceAsString();
return new Gson().fromJson(content, entityClass);
@@ -138,6 +158,7 @@
* @return
*/
public List<T> query(String document, String key, int start, int count, Class<T> entityClass) {
+ String index = getDocument(entityClass);
List<T> list = new ArrayList<>();
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.termQuery(document, key));
@@ -149,7 +170,7 @@
searchRequest.indices(index);
searchRequest.source(sourceBuilder);
try {
- SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
+ SearchResponse searchResponse = elasticManger.getClient().search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
SearchHit[] searchHits = hits.getHits();
@@ -163,10 +184,5 @@
}
return list;
}
-
-
-
-
-
}
--
Gitblit v1.8.0