es客户端查询服务器的三种模式

Node接入 node client(客户端相当于一个node接入)

Transport接入 transport client(5之前多用这种方式,基于二进制设计效率比较高)

Http接入 rest client(基于http通信,做到了不受语言限制,不受框架限制,5之后推介这种方式,7之后es会废弃Transport方式)


#申明es服务地址elasticsearch.ip1=192.168.1.67:9300 //记得是9200端口,看es配置,之前这里搞错es通信连接不上很难判断错误/*ES连接不上判断方式1.端口配置2.是否网络IO不足,超时时间太短3.hostname是否配置对,第一次最好用ip*/
public class ElasticsearchRestClient2 {    @Value("${elasticsearch.ip1}")    String ipAddress;    @Bean(name="highLevelClient")

    public RestHighLevelClient highLevelClient()    {        String [] address = ipAddress.split(":");        String ip = address[0];        int port = Integer.valueOf(address[1]);        HttpHost httpHost = new HttpHost(ip,port,"http");        RestClientBuilder builder = RestClient.builder(                new HttpHost("192.168.1.67", 9200, "http")); builder.setRequestConfigCallback(            new RestClientBuilder.RequestConfigCallback() {                @Override                public RequestConfig.Builder customizeRequestConfig(                        RequestConfig.Builder requestConfigBuilder) {                    return requestConfigBuilder.setConnectionRequestTimeout(-1);                }            });        return new RestHighLevelClient(builder);    }

//使用es查询的方法,等有空独立做个工具类,不过各个版本不同应该有区别我用的是7.6.1
@Overridepublic Map<String, Object> searchES(BigDecimal longitude, BigDecimal latitude, String keyword, Integer orderby, Integer categoryId, String tags) throws IOException {    Map<String,Object> result = new HashMap<String,Object>();    SearchRequest searchRequest = new SearchRequest("shop");    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

    List<Integer> shopIdsList = new ArrayList<>();    sourceBuilder.query(QueryBuilders.matchQuery("name",keyword));    sourceBuilder.timeout(new TimeValue(60,TimeUnit.SECONDS));    searchRequest.source(sourceBuilder);

    SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);    SearchHit[] hits  = searchResponse.getHits().getHits();    for(SearchHit hit : hits)    {        shopIdsList.add(new Integer(hit.getSourceAsMap().get("id").toString()));    }    List<ShopModel> shopModelList = shopIdsList.stream().map(            id -> {                return get(id);            }    ).collect(Collectors.toList());    result.put("shop",shopModelList);    return result;}

原文地址:https://www.cnblogs.com/yaohaitao/p/12643964.html

时间: 2024-11-12 15:08:23

es客户端查询服务器的三种模式的相关文章

DNS 服务器三种模式搭建和常见问题解答

DNS 服务器三种模式搭建和常见问题解答                               作者浩浩哥来了   主DNS服务器搭建   DNS是域名服务器(DomainNameServer)的缩写,在TCP/IP网络中是一种很重要的网络服务,它用于将易于记忆的域名和不易记忆的IP地址进行转化   Vim /etc/hosts 修改主机名 127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomai

高性能服务器——I/O多路转接的三种模式(select &poll& epoll)

一.简单的服务器I/O模型 最简单的的TCP服务器,有三种模式: 1.单执行流,一个server端连接一个client端 2.多进程,一个server端通过多进程的方式,每个进程连接一个client端 3.多线程,一个server端通过多进程的方式,每个线程连接一个client端 (http://zhweizhi.blog.51cto.com/10800691/1830267) 这里实现过 要提升服务器性能,其实就是想要让一个server端能在负载允许的情况下,连接尽可能多的client端. 因

CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性.传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点,下面开始搭建: 1.用root 进入系统 2.使用命令 rpm  -qa | grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vsftpd的版本 3.如果安装了,可

Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置

之前我们讨论过<Linux Oracle 11g dataguard物理standby 配置过程>, 但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种模式, 保护最大化:这种模式的配置可以保证主库和备库的同步,任何情况下主库的损毁都不会导致已提交数据的丢失.如果主库和备库之间的网络出现问题,或者备库本身出现问题,都会导致主库停止数据处理. 可用最大化:这种模式和上面一种类似,也是会保证主库和备库的同步,区别在于,当网络或备库不可用时,主库仍然可以继续处理.

Hive 之元数据库的三种模式

Hive 介绍 http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html Hive的数据类型和数据模型 http://www.cnblogs.com/sharpxiajun/archive/2013/06/03/3114560.html Hive内表与外表详述 http://www.aboutyun.com/thread-7458-1-1.html Hive的体系结构 http://blog.csdn.net/zhoud

LVS三种模式配置及优点缺点比较 转

LVS三种模式配置及优点缺点比较   作者:gzh0222,发布于2012-11-12,来源:CSDN   目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.linuxvirtualserver.org/VS-NAT.html http://www.linuxvirtualserver.org/VS-IPTunneling.html http://www

exp/imp三种模式——完全、用户、表

exp/imp三种模式——完全.用户.表    原文地址http://www.2cto.com/database/201305/214019.html ORACLE数据库有两类备份方法.第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库:第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备. 数据库逻辑备份方法 ORACLE数据库

LVS三种模式配置及优点缺点比较

LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.linuxvirtualserver.org/VS-NAT.html http://www.linuxvirtualserver.org/VS-IPTunneling.html http://www.linuxvirtualserver.org/VS-DRouting.html 首先是安装ipvsadm管理程序

VMware下网络配置的三种模式

目录 一 网络配置中出现的错误及解决方案二 VMware下网络配置的三种模式简介1.桥接模式(Bridged)2.网络地址转化模式(NAT)3.仅主机模式(host-only) 网络配置中出现的错误及解决方案 错误1: 安装好虚拟机之后一切正常,等过了一天再使用时发现获取不到IP地址. 错误分析:考虑虚拟机配置了NAT模式.Bridged模式和host-only模式. 首先考虑NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,