All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sinszm.es.EsUtil Maven / Gradle / Ivy

package com.sinszm.es;

import cn.hutool.extra.spring.SpringUtil;
import com.sinszm.common.exception.ApiException;
import com.sinszm.es.dao.EsDao;
import com.sinszm.es.dao.Page;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexResponse;
import org.elasticsearch.index.query.QueryBuilder;

import java.util.List;

/**
 * Es调用工具
 *
 * @author sinszm
 */
public final class EsUtil {

    /**
     * 判断实例是否存在
     *
     * @return      响应实例对象
     */
    private static EsDao dao(){
        final String name = "esDao";
        if (SpringUtil.getApplicationContext().containsBeanDefinition(name)) {
            return SpringUtil.getBean(EsDao.class);
        }
        throw new ApiException("未启用Es服务");
    }

    /**
     * 客户端
     *
     * @return  操作客户端
     */
    public static RestHighLevelClient es() {
        return dao().es();
    }

    /**
     * 判断索引是否存在
     * @param index     索引名称
     * @return          是否存在,true存在,false不存在
     */
    public static boolean existsIndex(String index) {
        return dao().existsIndex(index);
    }

    /**
     * 判断索引是否存在
     * @param tClass    索引类
     * @param        泛型
     * @return          是否存在,true存在,false不存在
     */
    public static  boolean existsIndex(Class tClass) {
        return dao().existsIndex(tClass);
    }

    /**
     * 创建索引
     * @param tClass        索引类
     * @param            泛型
     * @return              创建结果
     */
    public static  CreateIndexResponse createIndex(Class tClass) {
        return dao().createIndex(tClass);
    }

    /**
     * 删除索引
     * @param tClass            索引类
     * @param                泛型
     * @return                  删除结果
     */
    public static  AcknowledgedResponse deleteIndex(Class tClass) {
        return dao().deleteIndex(tClass);
    }

    /**
     * 插入索引数据
     * @param data              数据
     * @param create            是否创建索引结构
     * @param                泛型
     * @return                  插入结果
     */
    public static  IndexResponse insert(T data, boolean create) {
        return dao().insert(data, create);
    }

    /**
     * 插入索引数据
     * 

* 不执行索引结构的初始化创建 *

* @param data 数据 * @param 泛型 * @return 插入结果 */ public static IndexResponse insert(T data) { return dao().insert(data); } /** * 插入索引数据 *

* 如果索引结构不存在则创建,如果索引存在则先删除结构再创建 *

* @param data 数据 * @param 泛型 * @return 插入结果 */ public static IndexResponse insertEs(T data) { return dao().insertEs(data); } /** * 更新索引数据 * @param data 数据 * @param 泛型 * @return 更新结果 */ public static UpdateResponse update(T data){ return dao().update(data); } /** * 删除索引数据 * @param data 数据 * @param 泛型 * @return 删除结果 */ public static DeleteResponse delete(T data) { return dao().delete(data); } /** * 查询单条索引数据详情 * @param id 索引ID * @param tClass 实体 * @param 泛型 * @return 数据 */ public static T findOne(String id, Class tClass) { return dao().findOne(id, tClass); } /** * 查询全部 * @param tClass 实体类 * @param 泛型 * @return 索引列表 */ public static List findAll(Class tClass) { return dao().findAll(tClass); } /** * 查询全部 * @param tClass 实体类 * @param size 游标每页返回数 * @param 泛型 * @return 索引列表 */ public static Page findAll(Class tClass, int size) { return dao().findAll(tClass, size); } /** * 查询数据 * @param queryBuilder 查询条件 * @param tClass 实体类 * @param 泛型 * @return 按条件查询的数据列表 */ public static List query(QueryBuilder queryBuilder, Class tClass) { return dao().query(queryBuilder, tClass); } /** * 按Scroll查询数据 * @param queryBuilder 查询条件 * @param size 每次scroll返回数据条数 * @param tClass 实体类 * @param 泛型 * @return 分页数据 */ public static Page query(QueryBuilder queryBuilder, int size, Class tClass) { return dao().query(queryBuilder, size, tClass); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy