ElasticSearch查询模板

本文介绍了如何在Java项目中使用ElasticSearch查询模板。首先,通过Maven在pom.xml中导入所需jar包。接着,展示了连接ElasticSearch集群的ClientConnect.java,以及定义查询模板的BaseSearch.java。在SearchTest.java中进行测试实例,通过修改BaseSearch.java以适应不同的查询需求。逐步实践以熟悉ElasticSearch的查询功能。务必确保所用jar包与集群版本匹配,避免连接错误。
摘要由CSDN通过智能技术生成

需要的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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值