需要的jar包,我这里使用maven的pom.xml导入,可以自己下载jar包并导入到项目中
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.4.2</version>
</dependency>
连接集群ClientConnect.java
import java.net.InetSocketAddress;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
/**
*
* @createDate 2018年3月8日
* @class_name ClientConnect 连接ES集群
* @description : 建立es的client,通过getClient()调用,只能连接es5.4.2
*/
public class ClientConnect {
private TransportClient client;
public TransportClient getClient() {
return client;
}
/**
*
* @param clusterName 集群名称
* @param clusterAddress 集群ip地址
* @param port 端口号
*/
@SuppressWarnings({ "unchecked", "resource" })
public ClientConnect(String clusterName, String clusterAddress, int port) {
Settings settings = Settings.builder().put("cluster.name", clusterName)
.build();
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(
new InetSocketAddress(clusterAddress, port)));
System.out.println("success connect");
}
}
查询模板BaseSearch.java
package util;
import java.util.Arrays;
import java.util.Iterator;
import org.apache.lucene.search.Sort;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.lucene.search.function.CombineFunction;
import org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction.Modifier;
import org.elasticsearch.index.query.MultiMatchQueryBuilder.Type;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder.FilterFunctionBuilder;
import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.junit.Test;
/**
* @date 2018年3月8日
* @class_name baseSearch
* @descript