栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

es5.1.1升级到7.14.2

es5.1.1升级到7.14.2

一、修改pom.xml文件

    7.14.2
    2.10.0



     org.springframework
     spring-beans
     5.2.6.RELEASE


     org.springframework
     spring-aop
     5.2.6.RELEASE


     org.springframework
     spring-context
     5.2.6.RELEASE


     org.springframework
     spring-web
     5.2.6.RELEASE


     org.apache.httpcomponents
     httpclient
     4.5.12


     commons-httpclient
     commons-httpclient
     3.1


     com.fasterxml.jackson.core
     jackson-databind
     ${jackson.version}


     com.fasterxml.jackson.core
     jackson-annotations
     ${jackson.version}


     com.fasterxml.jackson.core
     jackson-core
     ${jackson.version}


     org.elasticsearch
     elasticsearch
     ${es.version}


     org.elasticsearch.plugin
     percolator-client
     ${es.version}


     org.elasticsearch.client
     elasticsearch-rest-high-level-client
     ${es.version}


     org.springframework.data
     spring-data-elasticsearch
     4.2.5


     org.springframework.boot
     spring-boot-starter-data-elasticsearch
     2.5.4


     org.springframework.amqp
     spring-rabbit
     2.2.6.RELEASE

注:pom.xml文件中springFarmeWrok版本要一直,否则项目启动报错:

httpClient版本不对也会报错:elasticsearch--Invalid receiver type interface org.apache.http.Header - 景岳 - 博客园

二:变更客户端client
RestHighLevelClient:
RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(
                new HttpHost("localhost", 9200, "http"),
                new HttpHost("localhost", 9201, "http")));

我本地初始化客户端代码稍有不同:

public static RestHighLevelClient buildClient(String clusterName, String hosts, int port) {
        return buildClient(clusterName, hosts.split("\s*,\s*"), port);
    }

public static RestHighLevelClient buildClient(String clusterName, String[] hosts, int port) {
//        RestClientBuilder builder = RestClient.builder(Arrays.stream(hosts).map(host -> new HttpHost(host, port)).toArray(HttpHost[]::new));
//        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
//        //xpack账户认证
//        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "d0QSyh6tVI4W7663zxuc"));
//        //认证和线程数
//        builder.setHttpClientConfigCallback(httpClientBuilder -> {
//            httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
            if (null != esProperties.getThreadCount()) {

            }
//            httpClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(25).build());
//            return httpClientBuilder;
//        });
//        builder.setRequestConfigCallback(requestConfigBuilder -> {
//            requestConfigBuilder.setConnectTimeout(30000);
//            requestConfigBuilder.setSocketTimeout(30000);
//            requestConfigBuilder.setConnectionRequestTimeout(30000);
//            return requestConfigBuilder;
//        });
//        builder.setHttpClientConfigCallback(httpClientBuilder -> {
//            httpClientBuilder.setMaxConnTotal(25);
//            httpClientBuilder.setMaxConnPerRoute(15);
//            return httpClientBuilder;
//        });
        final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
            .connectedTo(Arrays.stream(hosts).map(host -> new InetSocketAddress(host, port)).toArray(InetSocketAddress[]::new))
            .withBasicAuth("cluster.name", clusterName)
            .withConnectTimeout(30000).withSocketTimeout(30000)
            .withHttpClientConfigurer(httpClientBuilder -> {
                httpClientBuilder.setMaxConnTotal(25);
                httpClientBuilder.setMaxConnPerRoute(15);
                return httpClientBuilder;
            })
            .build();
        return RestClients.create(clientConfiguration).rest();
    }
        return RestClients.create(clientConfiguration).rest();
三、请求构建
//构建查询器
//5.1版本构建:
//SearchRequestBuilder builder = esClientProvider.getClient().prepareSearch(CommonUtils.getIndex(ds));
//7.14.2版本:
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

//sourceBuilder.setQuery(QueryBuilders.boolQuery().must(queryBuilder));
//更新为:
sourceBuilder.query(QueryBuilders.boolQuery().must(queryBuilder);
//相应的aggregation(),from(),size()等方法也稍有变更
//执行获取结果
//response = builder.execute().actionGet();
//更新为:
SearchResponse response = esClientProvider.getClient()
    .search(new SearchRequest()
    .source(sourceBuilder), RequestOptions.DEFAULT);
四、不同请求方式变更
MultiTermVectorsRequestBuilder requestBuilder = client.prepareMultiTermVectors();
MultiTermVectorsResponse resp = requestBuilder.execute().actionGet();
XContentBuilder builder2 = XContentFactory.jsonBuilder().startObject();
resp.getResponses().getResponse().toXContent(builder2, ToXContent.EMPTY_PARAMS);
//更新为:
MultiTermVectorsRequest requestBuilder =
            new MultiTermVectorsRequest();
XContentBuilder builder2 = null;
        for (Node patent : patents) {
            TermVectorsRequest request = new TermVectorsRequest(patent.getIndex(), builder2);
            request.setFields(fields);
            request.setTermStatistics(true);
            request.setPositions(false);
            request.setFieldStatistics(false);
            request.setOffsets(false);
            request.setFilterSettings(filterSettings);
            requestBuilder.add(request);
        }
 MultiTermVectorsResponse resp = null;
        try {
            resp = client.mtermvectors(requestBuilder, RequestOptions.DEFAULT);
        }catch (Exception e){
            return null;
        }

学习资料:

ElasticSearch 7 JAVA实例:初始化-资讯-开发学院-努力做开发者最信赖的技术教程网站!

ElasticSearch 7 JAVA实例:Multi Term Vectors API-资讯-开发学院-努力做开发者最信赖的技术教程网站!

使用RestHighLevelClient方式操作Elasticsearch详细步骤 建议收藏_jonssonyan-CSDN博客_resthighlevelclient 高亮


Building Queries | Java REST Client [7.14] | Elastic

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号