ES版本:2.3.1
JDK:1.8
所需要的jar包请在ES安装路径下的jars包中获得,不要使用其他的jar否则容易出现版本问题!
注意:代码中TransportClient client=ESLink.getTransportClient();连接在上一篇
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder;
import org.elasticsearch.search.aggregations.metrics.max.InternalMax;
import org.elasticsearch.search.aggregations.metrics.min.InternalMin;
import org.elasticsearch.search.aggregations.metrics.sum.InternalSum;
import org.elasticsearch.search.aggregations.metrics.sum.SumBuilder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Created by LCY on 4/8/2018.
*
* 使用JAVA API对ES进行查询删除操作
*/
public class ESUtils {
/**
* 简单的查询
* select * from {index} where {field}={Accept} limit {size};
* @param index 查询的索引
* @param type 查询的type,可以使用heda查看
* @param field 查询的字段
* @param Accept 查询的内容
* @param size 查询结果的条数
* @return SearchResponse的Json
*/
public List<String> queryByFilter_Accept(String index, String type, String field, String Accept, int size) {
TransportClient client=ESLink.getTransportClient();
SearchResponse response = client.prepareSearch(index)//设置要查询的索引(index)
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setTypes(type)//设置type, 这个在建立索引的时候同时设置了, 或者可以使用head工具查看
.setQuery(QueryBuilders.matchQuery(field, Accept)) //在这里"message"是要查询的field,"Accept"是要查询的内容
.setFrom(0)
.setSize(size)
.setExplain(true)
.execute()
.actionGet();
List<String> docList = new ArrayList<String>();
for (SearchHit hit : response.getHits()) {
docList.add(hit.getSourceAsString());
}
client.close();
return docList;
}
/**
* 简单的查询
* select * from {index} limit {size};
* @param index 查询的索引
* @param type 查询的type,可以使用heda查看
* @param size 查询结果的条数
* @return 结果list
*/
public List<String> queryByFilter(String index, String type, int size) {
TransportClient client=ESLink.getTransportClient();
SearchResponse response = client.prepareSearch(index)//设置要查询的索引(index)
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setTypes(type)//设置type, 这个在建立索引的时候同时设置了, 或者可以使用head工具查看
.setFrom(0)
.setSize(size)
.setExplain(true)
.execute()
.actionGet();
List<String> docList = new ArrayList<String>();
for (SearchHit hit : response.getHits()) {
docList.add(hit