ElasticSearch High Level REST API【4】多搜索

摘要:
=空){System.out.println(“第二个请求失败!

1、Multi-Search多搜索请求

Multi-Search可同时添加多个search搜索请求,并行地在一个http请求中执行多个搜索请求,相较多次单请求查询可提升查询效率。ES客户掉通过mget方法实现多请求搜索:

public void multiSearch(){
        RestHighLevelClient client = elasticClient.getRestHighLevelClient();
        MultiSearchRequest request = new MultiSearchRequest();
        SearchRequest firstSearchRequest = new SearchRequest();
        SearchSourceBuilder firstBuilder = new SearchSourceBuilder();
        firstBuilder.query(matchQuery("name","潇潇"));
        firstSearchRequest.source(firstBuilder);
        request.add(firstSearchRequest);
        SearchRequest secondRequest = new SearchRequest();
        SearchSourceBuilder secondBuild = new SearchSourceBuilder();
        secondBuild.query(matchQuery("position","建筑师"));
        secondRequest.source(secondBuild);
        request.add(secondRequest);
        try {
            MultiSearchResponse multiResponse = client.msearch(request, RequestOptions.DEFAULT);
            MultiSearchResponse.Item firstItem  = multiResponse.getResponses()[0];
            if (firstItem.getFailure() != null) {
                System.out.println("第一个请求失败!");
            }
            SearchResponse firstResponse = firstItem.getResponse();
            for (SearchHit documentFields : firstResponse.getHits().getHits()) {
                System.out.println("第一个查询请求返回:"+documentFields.getSourceAsString());
            }
            MultiSearchResponse.Item seconditem = multiResponse.getResponses()[1];
            if (seconditem.getFailure() != null) {
                System.out.println("第二个请求失败!");
            }
            SearchResponse secondResponse = seconditem.getResponse();
            for (SearchHit documentFields : secondResponse.getHits().getHits()) {
                System.out.println("第二的查询请求返回:" + documentFields.getSourceAsString());
            }
            client.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

模板搜索

免责声明:文章转载自《ElasticSearch High Level REST API【4】多搜索》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信公众平台开发教程(六)获取个性二维码【nodejs】 文件系统(fs) 之读写文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

谷粒商城学习——P124 es 自定义扩展词库

P122中安装的ik分词器, 本身默认的词库并不支持一些新的词汇,这就需要修改ik分词器的配置文件,指定远程词库进行扩展词库。ik分词器向远程发送请求要到最新的单词,这样最新的单词就会做为新的词源远行分解。可以给nginx发送请求,nginx反回最新词库。 虚拟机装nginx,内存不够,先将虚拟机关机,打开设置,将内存调到3075,然后重启      然...

kibana软件具体参数配置信息

https://www.elastic.co/guide/cn/kibana/current/settings.html Kibana server 启动时从 kibana.yml 文件中读取配置属性。Kibana 默认配置 localhost:5601 。改变主机和端口号,或者连接其他机器上的 Elasticsearch,需要更新 kibana.yml...

drf—— drf的请求与响应

一、Request#常用属性 -data :前端以post请求提交的数据都在它中 -FILES :前端提交的文件 -query_params:就是原来的request.GET -重写了 __getattr__ -使用新的request.method其实取得就是原生request.method(通过反射实现)...

ElasticSearch 高级DSL查询语句

ElasticSearch 高级DSL查询语句 1. 准备测试索引和映射关系 向ES集群中发送Put请求,用以创建索引和映射关系:http://127.0.0.1:9200/student 请求Body携带json参数信息如下 { "settings": {}, "mappings": { "properties": {...

linux 安装 es

创建用户 从5.0开始,ElasticSearch 安全级别提高了,不允许采用root帐号启动,所以我们要添加一个用户 1 创建 elasticsearch 用户组 root@localhost ~]# groupadd elasticsearch 2 创建用户 es 并设置密码为es [root@localhost ~]# useradd es [roo...

ElasticSearch 分组查询的几个例子

facets接口可以根据query返回统计数据,其中的 terms_stats 是分组统计,根据key的情况返回value的统计数据,类似group by的意思。 "terms_stats" : { "key_field" : "", "value_field" : "" } 例子:查询每个ip的请求执行时间 查询语句: 1: { 2: "si...