博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ElasticSearch笔记(二)
阅读量:6360 次
发布时间:2019-06-23

本文共 2020 字,大约阅读时间需要 6 分钟。

hot3.png

多条件过滤查询:

TransportClient client = ElasticService.getTransportClient();

        BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
        // TODO 要匹配的字段修改 以及字段名称修改
        boolBuilder = boolBuilder.should(
                QueryBuilders.matchQuery("title", keyWord)).should(
                QueryBuilders.matchQuery("videoTitle", keyWord));
        List<String> mediaList = getChildMediaCode(sourceCode);
        boolBuilder = boolBuilder.must(QueryBuilders.termsQuery("sourceCode",
                mediaList));

        if (infoType != null && !"".equals(infoType)) {

            boolBuilder = boolBuilder.must(QueryBuilders.matchQuery("infoType",
                    infoType));
        }
        // FilteredQueryBuilder query = null;
        Date startTime = null;
        Date endTime = null;
        if (start != null && !"".equals(start)) {
            startTime = DateUtil.strToDate(start);
        }
        if (end != null && !"".equals(end)) {
            endTime = DateUtil.strToDate(end);
        }
        // TODO 时间字段修改
        BoolFilterBuilder filterBuilder = FilterBuilders.boolFilter().must(
                FilterBuilders.rangeFilter("createTime").from(startTime)
                        .to(endTime));

        QueryBuilder query = QueryBuilders.filteredQuery(boolBuilder,

                filterBuilder);

        // 页码

        String pages = pageData.getString("currentPageNo");
        int currentPageNo = 1;
        if (pages != null && !"".equals(pages)) {
            currentPageNo = Integer.parseInt(pages);
        }
        // 每页展示数量
        Integer pageCount = Integer.parseInt(PropertiesUtils
                .getValueByKey("search.page"));
        int pageStart = (currentPageNo - 1) * pageCount;
        int pageEnd = currentPageNo * pageCount;

        SearchResponse response = client.prepareSearch()

                .setIndices(PropertiesUtils.getValueByKey("elastic.index"))
                .setTypes(PropertiesUtils.getValueByKey("elastic.type"))
                .setQuery(query).setFrom(pageStart).setSize(pageEnd)
                .addSort("createTime", SortOrder.DESC).execute().actionGet();
        SearchResponse res = client.prepareSearch()
                .setIndices(PropertiesUtils.getValueByKey("elastic.index"))
                .setTypes(PropertiesUtils.getValueByKey("elastic.type"))
                .setQuery(query).execute().actionGet();
        client.close();
        SearchHits result = response.getHits();
        // 结果总数
        long total = res.getHits().getTotalHits();

 

转载于:https://my.oschina.net/keke412/blog/1635977

你可能感兴趣的文章
pvrect r语言 聚类_技术贴 | R语言——肠型分析:介绍、方法
查看>>
正面管教之PHP_主题体验活动之亲密关系
查看>>
iservice封装有哪些方法_Java基础之类与对象、封装、构造方法·6(重点)
查看>>
redis技术分享ppt_一线互联网架构师技术分享:基于redis的分布式锁实现
查看>>
rap2检测哪些接口在使用_使用四合一气体检测仪应注意哪些方面?-逸云天
查看>>
android垂直排列元素_元素的视图属性之client
查看>>
模型算法_详解SVM模型之SMO算法
查看>>
动态文本_(302期)【动态】|| 立足相同文本,描绘不同风景 ——工作室开展“同课异构”活动...
查看>>
2fsk调制解调原理框图_数字调制解调输出什么 数字调制解调输出特点介绍【图文】...
查看>>
查看mysql某人执行了什么语句_一条 SQL 语句是如何在 MySQL 中执行的
查看>>
r 选取从小到大的数据_r 选取数据库
查看>>
geant4构造粒子_Geant4 基础5——Geant4粒子源
查看>>
python 论文插图_插图论文
查看>>
es6 混合commjs_前端模块化——CommonJS、ES6规范
查看>>
6379端口恶意扫描_DNS重绑定的利用:端口扫描与绕过同源策略
查看>>
mysql reset_mysql的reset命令
查看>>
mysql选择utf 8编码_MySQL支持UTF-8编码全攻略
查看>>
阿里云服务器web项目启动连接mysql_在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)...
查看>>
mysql 非英文_非英文网站如何使用MySQL的字符集
查看>>
lua mysql 字符串截取_Lua 截取字符串(截取utf-8格式字符串)
查看>>