package com.fdkankan.elasticsearch.service;

import com.alibaba.fastjson.JSONObject;
import org.elasticsearch.rest.RestStatus;

import java.io.IOException;
import java.util.List;

public interface  DocumentService {

    /**
     * 增加文档信息
     *
     * @param indexName 索引名
     * @param keyId     主键
     * @param data      json数据
     * @return 增加文档信息状态
     * @throws IOException 异常信息
     */
    RestStatus addDocument(String indexName, String keyId,String data) throws IOException;

    /**
     * 获取文档信息
     *
     * @param indexName 索引名
     * @param id        文档ID
     * @return 商品数据
     * @throws Exception 异常信息
     */
    String getDocument(String indexName, String id) throws Exception;

    /**
     * 更新文档信息
     *
     * @param indexName 索引名
     * @param data      数据
     * @return 更新文档信息状态
     * @throws IOException 异常信息
     */
    RestStatus updateDocument(String indexName, String id ,String data) throws IOException;

    /**
     * 删除文档信息
     *
     * @param indexName 索引名
     * @param id        文档ID
     * @return 删除文档信息状态
     * @throws IOException 异常信息
     */
    RestStatus deleteDocument(String indexName, String id) throws IOException;

    /**
     * 批量导入
     *
     * @param dataList 商品列表
     * @return 批量导入状态
     * @throws IOException 异常信息
     */
    RestStatus batchImportGoodsData(List<JSONObject> dataList, String index) throws IOException;
}
