| | |
| | | import java.util.List;
|
| | | import java.util.concurrent.TimeUnit;
|
| | |
|
| | |
|
| | | import org.apache.http.HttpHost;
|
| | | import org.elasticsearch.action.delete.DeleteRequest;
|
| | | import org.elasticsearch.action.get.GetRequest;
|
| | |
| | | import com.google.gson.Gson;
|
| | | import com.google.gson.GsonBuilder;
|
| | |
|
| | | import org.springframework.data.elasticsearch.annotations.Document;
|
| | |
|
| | |
|
| | |
|
| | | @Repository
|
| | | public abstract class ElasticBaseDao<T> {
|
| | | // 地址
|
| | | private static String host = "192.168.1.200";
|
| | | // 端口
|
| | | private static Integer port = 9200;
|
| | | // 数据库名称
|
| | | public static String index = "order";
|
| | |
|
| | | |
| | | // 初始化api客户端
|
| | | public static RestHighLevelClient client = new RestHighLevelClient(
|
| | | RestClient.builder(new HttpHost(host, port, "http")));
|
| | | public static RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost(host, port,"http")));;
|
| | | |
| | | /**
|
| | | * 获取index
|
| | | * @param bean
|
| | | * @return
|
| | | */
|
| | | public String getDocument(Class<?> entityClass) {
|
| | | if (entityClass.isAnnotationPresent(Document.class)) {
|
| | | Document doc = (Document)entityClass.getAnnotation(Document.class);
|
| | | System.out.println(doc.indexName());
|
| | | return doc.indexName();
|
| | | }
|
| | | |
| | | String name = entityClass.getName();
|
| | | return name.substring(name.lastIndexOf(".") + 1, name.length());
|
| | | }
|
| | |
|
| | | |
| | |
|
| | | /**
|
| | | * 插入数据
|
| | |
| | | * @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 {
|
| | |
| | | * @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 {
|
| | |
| | | * @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 {
|
| | |
| | | *
|
| | | * @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);
|
| | | } catch (IOException e) {
|
| | |
| | | * @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);
|
| | | if (getResponse.isExists()) {
|
| | |
| | | * @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));
|
| | |
| | | }
|
| | | return list;
|
| | | }
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
|
| | | }
|