使用jestClient查询ES常见问题

本文介绍如何使用JestClient在Spring Boot中查询ES,包括HTTP连接设置、精确查询、模糊搜索、分页、排序、区间查询及多重条件查询等常见操作。强调在进行查询时,要注意ES的默认返回限制及大小写敏感问题。
摘要由CSDN通过智能技术生成

使用jestClient查询ES常见问题

使用JestClient快速查询ES

众所周知,ES提供连接的方法有两种,一种是HTTP请求方式,一种是TCP/IP方式,ES对这两种方式提供了不同的接口,可以在ES的配置文件中查看详细端口号,在此不在赘述。
现在微服务的全家桶来说,基于spring boot和spring cloud很多情况下需要使用ES中间件进行存储一些数据或者是实现一些功能,比如分词、改造队列等等。所以spring也有相应的spring-data-ElasticSeach组件包连接ES进行相应的操作,其底层是使用了TCP/IP进行连接的,因为ES之后的版本TCP/IP的连接方式将不再支持,所以我们对新版本的ES使用JestClient进行连接。

开始我们的查询旅途吧~
首先加入我们的jestClient和ES的依赖

		<dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest</artifactId>
            <version>5.3.4</version>
        </dependency>
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
            <version>6.3.2</version>
		</dependency>

指定我们的ES服务地址,当然是http连接的端口地址

spring.elasticsearch.jest.uris=http://127.0.0.1:9200

接下来我们写一个简单精确查询的例子,注意如果是要查询英文,所传入的值应该做小写处理,不然搜不到

import io.searchbox.client.JestClient;
import io.searchbox.client.JestResult;
import io.searchbox.core.Search;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.IOException;

public class test {
   
    @Autowired
    JestClient jestClient;

    public void seach() throws IOException {
   
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(QueryBuilders.termQuery("字段名","123"));
        Search search =new Search.Builder(searchSourceBuilder.toString()).addIndex("索引名").addType("type名").build();
        JestResult jestResult = jestClient.execute(search);
    }
}

然后使用jestResult获取各种你想要的查询值
在这里插入图片描述
要想改变搜索条件,那么参考下面的方法

模糊搜索,*为通配符

public void seach() throws IOException {
   
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值