java Elasticsearch QueryBuilders 用法

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

模糊查询



BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();

//Elasticsearch 中文会把汉字分词,“王大”会匹配到like“王”和like“大”,要在字段后面接keyword
boolBuilder.must(QueryBuilders.wildcardQuery("userName.keyword","*王大*"));

等于、不等于



BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
//等于  must
boolBuilder.must(QueryBuilders.termQuery("age","30"));
//不等于  mustNot
boolBuilder.mustNot(QueryBuilders.termQuery("sex","1"));

大于、小于



BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
//大于
boolBuilder.must(QueryBuilders.rangeQuery("createTime").gt(1609430400000));
//小于
boolBuilder.must(QueryBuilders.rangeQuery("createTime").lt(1672502400000));

 and 、or 同时使用 

 想实现下面这个sql

select * from user where a=1 and ((b=2 and c=3 and d !=4) or (e=4 and f=5))

 java Elasticsearch 实现


BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();

boolBuilder.must(QueryBuilders.termQuery("a",1));


QueryBuilder queryBuilder1 = QueryBuilders.boolQuery()
                    .must(QueryBuilders.termQuery("b", 2))
                    .must(QueryBuilders.termQuery("c", 3))
                    .mustNot(QueryBuilders.termQuery("d", 4));

QueryBuilder queryBuilder2 = QueryBuilders.boolQuery()
                    .must(QueryBuilders.termQuery("e", 4))
                    .must(QueryBuilders.termQuery("f", 5));

QueryBuilder queryBuilder = QueryBuilders.boolQuery()
                    .should(queryBuilder1)
                    .should(queryBuilder2);

boolBuilder.must(queryBuilder);

where in条件



BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();

boolBuilder.filter(QueryBuilders.termsQuery("type",[1,2,3]));

排序文章来源地址https://www.toymoban.com/news/detail-538787.html


SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
//where 条件
searchSourceBuilder.query(boolBuilder);

//排序  SortOrder.ASC   SortOrder.DESC
searchSourceBuilder.sort("createTime", SortOrder.ASC);

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

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

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

相关文章

  • elasticsearch7基础用法及java中使用

    GET、POST、PUT、DELETE、HEAD。 id content 1001 my name is zhang san 1002 i name is li si 1003 my name is wang wu keyword id name 1001,1002,1003 zhang 1001a my 1001,1003 PUT请求:http://127.0.0.1:9200/索引名称 返回值: 表头 含义 health 当前服务器健康状态: green (集群完整) yellow (单点正常、集群不完整) red(单点不正

    2024年02月03日
    浏览(36)
  • elasticsearch结果窗口限制10000[from+size小于或等于10000]

    Elasicsearch版本7.8,执行DSL查询 结果Elasicsearch报如下错误 其实Elasicsearch这个错误已经提示的很明显了,甚至提出了解决方案。大概意思是说:结果窗口太大,from+size必须小于或等于10000,但我们检索的DSL中from+size=10001。我们在查询大量数据时可以采用 scroll api 这种高效的方式。

    2024年02月16日
    浏览(39)
  • elasticsearch sort script实现字段值等于某值排名靠前

    什么是script语言 script语言是es提供的一种支持自定义编程的用于复杂查询的脚本语言,主要类型有painless、expressions等。 需求描述 实际业务场景需要将某字段等于某值的排在前面,其他数据靠后。 比如: 雇员属性:name-名称,price-价值 价值 == 100的雇员排名在前,其他数据按照

    2024年02月11日
    浏览(46)
  • ElasticSearch简介及常见用法

    Elasticsearch 是 Elastic Stack 核心的分布式搜索和分析引擎。 Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。 Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。 Elasticsearch 可以快速 索引、搜索和分析 海量数据。 Ela

    2024年03月20日
    浏览(43)
  • ElasticSearch中的should 用法

    有一个场景需要实现 es_table中 isMember = 1 和 isMember !=1 其中isMember!=1有两种可能: isMember = 0 或者 isMember不存在  这种情况需要用到should,同时 跟其他条件 例如注册年在2023 是并列的关系 脚本需要用 should包含 两个条件 isMember = 0 或者 isMember不存在   GET es_table/_count {  

    2024年02月05日
    浏览(38)
  • 头歌Elasticsearch 基本用法答案

    su es   /opt/install/elasticsearch-6.5.4/bin/elasticsearch   第1关 Elasticsearch基本概念 #!/bin/bash # 请在此处编写命令 # ********** Begin ********** # # 通过 curl 命令查询 Elasticsearch 中所有文档的数量 curl -i -XGET \\\'http://127.0.0.1:9200/_count?pretty\\\' # ********** End ********** # 第2关 Elasticsearch索引的创建和查询

    2024年02月05日
    浏览(155)
  • Elasticsearch终端命令行用法大全

    API 作用 使用场景 curl localhost:9200/_cluster/health?pretty 查看ES健康状态 curl localhost:9200/_cluster/settings?pretty 查看ES集群的设置 其中persistent为永久设置,重启仍然有效;trainsient为临时设置,重启失效 curl localhost:9200/_cat/nodes?v 查看ES在线的节点 存在节点缺失的情况可用该命令查看缺失

    2024年02月09日
    浏览(31)
  • elasticsearch中文档映射Mapping用法详解

    Mapping类似数据库中的schema的定义,作用如下: 定义索引中的字段的名称 定义字段的数据类型,例如字符串,数字,布尔等 字段,倒排索引的相关配置(Analyzed or Not Analyzed,Analyzer) ES中Mapping映射可以分为动态映射和静态映射。 动态映射:         在关系数据库中,需要事先创

    2024年02月16日
    浏览(44)
  • Elasticsearch专栏-6.es基本用法-聚合查询

    在es中,所有的聚合查询都是放在aggs中进行的。平均值、总和、最大、最小、数量对应的分别是:avg、sum、max、min、value_count 分组用到的是terms 上面语句中的size:3,指的是分组后,只展示前三个分组内容。size:0,指的是所有query查询结果,也就是原始数据,不需

    2024年02月09日
    浏览(39)
  • Elasticsearch专栏-5.es基本用法-分词查询

    所谓分词,就是把一段语句,分割成一个个单词的过程。比如\\\"717 Hendrickson Place\\\"短语,分词后就是三个单词,即717、hendrickson、place。注意,分词后的单词默认都是小写。 分词查询,指的就是查询时,把要查询的语句(字符串)先进行分词,然后拿分词后的单词去文档集合中比

    2024年01月16日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包