java-es 搜索条件拼接 SearchSourceBuilder

这篇具有很好参考价值的文章主要介绍了java-es 搜索条件拼接 SearchSourceBuilder。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,根据字段数据去重

CollapseBuilder collapseBuilder = new CollapseBuilder("?");
sourceBuilder.collapse(collapseBuilder);

2,排序

super.sourceBuilder.sort(SortBuilders.fieldSort("createTime").order(SortOrder.DESC));

3,设置搜索分页

sourceBuilder.from((searchDto.getPageIndex() - 1) * searchDto.getPageSize()).size(searchDto.getPageSize());

4,搜索条件拼接

.boost() 设置条件等级    .caseInsensitive(true)忽略查询大小写
        BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder()
                .must(QueryBuilders.boolQuery()
                        .must(QueryBuilders.boolQuery()
                                .should(QueryBuilders.wildcardQuery("title.keyword", searchDto.getKeyword()).boost(5).caseInsensitive(true))
                                .should(QueryBuilders.wildcardQuery("title.keyword", key).caseInsensitive(true)))
                        .must(QueryBuilders.boolQuery()
                                .should(QueryBuilders.boolQuery()
                                        .must(QueryBuilders.termQuery("historyIsDelete", false))
                                        .must(QueryBuilders.termQuery("typeId", "1"))
                                        .must(QueryBuilders.termQuery("playBackRecording", 1))
                                        .must(QueryBuilders.rangeQuery("saveRecordingTime").gte(time))
                                        .must(QueryBuilders.termQuery("transcodingStatus", 1)))
                                .should(QueryBuilders.boolQuery()
                                        .must(QueryBuilders.termQuery("channelIsDelete", false))
                                        // .must((QueryBuilders.rangeQuery("beginTime").gte(date)))
                                        .must((QueryBuilders.boolQuery().should((QueryBuilders.rangeQuery("liveBeginTime").gte(date)))
                                                .should(QueryBuilders.termQuery("isReserve", 1))))))
                );

sourceBuilder.query(boolQueryBuilder);

效果如下文章来源地址https://www.toymoban.com/news/detail-809216.html

{"from":0,"size":4,"query":{"bool":{"must":[{"bool":{"must":[{"bool":{"should":[{"wildcard":{"title.keyword":{"wildcard":"2023","case_insensitive":true,"boost":5.0}}},{"wildcard":{"title.keyword":{"wildcard":"*2023*","case_insensitive":true,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"should":[{"bool":{"must":[{"term":{"historyIsDelete":{"value":false,"boost":1.0}}},{"term":{"typeId":{"value":"1","boost":1.0}}},{"term":{"playBackRecording":{"value":1,"boost":1.0}}},{"range":{"saveRecordingTime":{"from":1676451404,"to":null,"include_lower":true,"include_upper":true,"boost":1.0}}},{"term":{"transcodingStatus":{"value":1,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"term":{"channelIsDelete":{"value":false,"boost":1.0}}},{"bool":{"should":[{"range":{"liveBeginTime":{"from":"2023-02-15T08:56:44.723Z","to":null,"include_lower":true,"include_upper":true,"boost":1.0}}},{"term":{"isReserve":{"value":1,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"sort":[{"createTime":{"order":"desc"}}]}

到了这里,关于java-es 搜索条件拼接 SearchSourceBuilder的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • es——java实现基本搜索功能

    在输入框输入搜索、点击页面过滤项、翻页、排序都会导致请求发出,查询商品信息:   需要实现的功能包括: 搜索 分类、品牌、价格过滤 排序 分页 高亮 竞价排名 接口说明:  controller层: service层: service实现类:

    2024年02月11日
    浏览(37)
  • java中通过es搜索数据

    例 注意 要注意查询条件和要查询的es中的数据中的属性相匹配,具体是要查询对应数据中的那个字段 在使用es查询两个参数分别是上边查询条件匹配后的查询对象和查询数据对应的实体类的字节码对象 这四步就是将查询条件导入进去然后获取查询结果。 这就是设置了一下,

    2024年02月11日
    浏览(24)
  • java程序中使用ES knn搜索

    Elasticsearch 向量搜索应用介绍_es 向量检索_文晓武的博客-CSDN博客 Elasticsearch8.x KNN search 使用方式及参数介绍_elasticsearch knn_小帅毛的博客-CSDN博客 ElasticSearch的Dense Vector_elasticsearch dense vector_若石之上的博客-CSDN博客 Elastic Search : 8.0.1  RestClient restClient = RestClient.builder(          

    2024年02月12日
    浏览(45)
  • 通过java代码实现ES中的常用搜索

    目录 测试环境准备 在指定索引下搜索全部(可以指定字段) 通过ids进行搜索 对搜索结果进行分页 match分词搜索 不分词模糊搜索:wildcardQuery与matchPhraseQuery term 搜索(精确匹配) multi_match搜索 bool搜索 多条件匹配 filter过滤搜索 sort排序搜索 后续待补充:queryStringQuery,minimu

    2024年01月18日
    浏览(40)
  • Springboot 封装整活 Mybatis 动态查询条件SQL自动组装拼接

    ps:最近在参与3100保卫战,战况很激烈,刚刚打完仗,来更新一下之前写了一半的博客。 该篇针对日常写查询的时候,那些动态条件sql 做个简单的封装,自动生成(抛砖引玉,搞个小玩具,不喜勿喷)。 来看看我们平时写那些查询,基本上都要写的一些动态sql:   一个字段

    2024年02月12日
    浏览(28)
  • Es elasticsearch 二十 站内搜索示例 高亮内容 java springboot 实现

    目录 实现思路 代码 全依赖 参数对象 搜索实现代码全代码 日志 重点 权重 分页 入参高亮数据处理 返回出参数据处理 构建请求 请求体设置搜索字段 返回数据解析获取高亮 高亮通过设置标签和class  前端设置class字体颜色 也可直接写在后端   全依赖 参数对象 搜索实现代码

    2024年02月02日
    浏览(44)
  • ES es Elasticsearch 十三 Java api 实现搜索 分页查询 复杂查询 过滤查询 ids查询 等

    目录 Java api 实现搜索 Pom.xml 建立链接 搜索全部记录 增加规则值查某些字段 搜索分页 全代码 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 复杂查询 bool查询 filter  bool 复杂查询增加过滤器查询 复杂擦好像加排序 日志 思路 参考 api 写法 写Java代码 请求条件构建层次

    2024年02月04日
    浏览(58)
  • Springboot 自定义 Mybatis拦截器,实现 动态查询条件SQL自动组装拼接(玩具)

    ps:最近在参与3100保卫战,战况很激烈,刚刚打完仗,来更新一下之前写了一半的博客。 该篇针对日常写查询的时候,那些动态条件sql 做个简单的封装,自动生成(抛砖引玉,搞个小玩具,不喜勿喷)。 来看看我们平时写那些查询,基本上都要写的一些动态sql:   一个字段

    2024年02月12日
    浏览(45)
  • ES8 向量搜索(knn-search)java-api 实践

    官方文档-knn-search kNN搜索 k-nearest neighbor (kNN)搜索找到与查询向量最近的k个向量,如通过相似度计算。 kNN的常见用例包括: 基于自然语言处理(NLP)算法的相关性排序 产品推荐和推荐引擎 图像或视频的相似性搜索 要运行kNN搜索,您必须能够将数据转换为有意义的向量值

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包