ES7 and or 关联条件查询JAVA

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

@ES7 and or 关联条件查询JAVA

实现条件( platform=‘xxx’ and (home_path=‘xxx’ or nick_name=‘xxx’ ))

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
    SearchRequest searchRequest = new SearchRequest(SampleEnum.SAMPLE_PAGE.getValue());
    //查询字段
    String[] array = new String[]{"person_id", "home_path", "platform", "nick_name", "source_type",
        "account_id"};
    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder()
        .fetchSource(array, null);
        //设置查询条件
    MatchQueryBuilder queryBuilder2 = QueryBuilders.matchQuery("platform", platform);
    boolQueryBuilder.must(queryBuilder2);
    if (StringUtils.isNotBlank(searchValue)) {
      BoolQueryBuilder wqBuilder1 = QueryBuilders.boolQuery()
              .should(QueryBuilders.wildcardQuery("home_path.keyword", "*" + searchValue + "*"))
              .should(QueryBuilders.wildcardQuery("nick_name.keyword", "*" + searchValue + "*"));
      boolQueryBuilder.must(wqBuilder1);
      boolQueryBuilder.minimumShouldMatch();
    }
    sourceBuilder.query(boolQueryBuilder);
    searchRequest.source(sourceBuilder);
    //每次查询1千,直到查询全部数据再返回
    sourceBuilder.size(10000);
    //设置允许获取超过1万条数据,需额外配置ES查询总命中数,不然此设置无效,ES默认只能查1万条
    sourceBuilder.trackTotalHits(true);
    try {
      SearchResponse response = docService.search(searchRequest);
      System.out.println(searchRequest.source().toString());
      SearchHits hits = response.getHits();
      long value = hits.getTotalHits().value;
      SearchHit[] searchHits = hits.getHits();
      JSONArray jsonArray = new JSONArray();
      for (SearchHit hit : hits) {
        String sourceAsString = hit.getSourceAsString();
        JSONObject jsonObject = JSON.parseObject(sourceAsString);
        jsonArray.add(jsonObject);
      }
      Map<String, Object> map = new HashMap<>();
      map.put("total", value);
      map.put("rows", jsonArray);
      return AjaxResult.success(map);
    } catch (IOException e) {
      log.error("查询文档失败,异常信息:{}", e);
      return AjaxResult.error("查询文档失败");
    }

kibana文章来源地址https://www.toymoban.com/news/detail-717557.html

GET t_sample_page_data_dev/_search
{
 "query": {
   "bool": {
     "must": [
       {"match": {
         "platform": "facebook"
       }
       }],
       "should": [{
           "wildcard": {
             "nick_name.keyword": {
               "value": "*100000461928817*"
             }
           }
         },{
           "wildcard": {
             "home_path.keyword": {
               "value": "*100000461928817*"
             }
           }
         }
       ],"minimum_should_match": 1
   }
 }
 
}

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

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

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

相关文章

  • ES7.x的查询语句及java查询语句

    Elasticsearch 7.x 是一个基于 Lucene 的分布式搜索引擎,它提供了一个分布式全文搜索引擎,可以快速、准确地搜索、分析和存储海量数据。Elasticsearch 7.x 的主要特点包括: 分布式架构:Elasticsearch 7.x 是一个分布式系统,它可以运行在多个节点上,每个节点都是相互独立的,并且

    2024年02月08日
    浏览(43)
  • 使用ES同一个字段,不同条件or查询

    需求: type 字段是使用逗号分隔的字符串,要求多个 值只要与此字段 模糊匹配,即可成功 布尔查询(Bool Query) 布尔查询是一种联合查询,可以对多个查询条件进行组合,布尔查询有四个子查询: 有时我们在查询es时,希望能够一次返回符合多个查询条件的结果,如

    2024年02月11日
    浏览(78)
  • java使用elasticsearchClient调用es7.17-生成连接、查询系统参数、索引相关操作

    java调用elasticsearch有几种不同的方式,考虑到以后维护方便,使用elasticSearchClient进行数据交互 首先要进行maven引入,后面两个是与json转化有关的,刚开始测试可以无需引入 1、ModelTestCase 此实体整合了与es系统有关的相关参数 2、Person 此实体主要为测试索引中的数据结构 1、生

    2024年02月15日
    浏览(46)
  • Java中Elasticsearch使用类似MySQL的OR和AND查询

    本文用实例来介绍如何使用Spring Data Elasticsearch的ElasticsearchRestTemplate来操作ES,在Java中Elasticsearch使用类似MySQL的OR和AND进行多条件查询。 官网 Elasticsearch Operations 一种复合查询,把其余类型的查询包裹进来,支持以下三种逻辑关系。 ES查询实例如下: 在Java中代码示例: 该m

    2024年02月02日
    浏览(34)
  • es7.17版本之后的查询警告提示解决办法

    #! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.15/security-minimal-setup.html to enable security 😈 打开es安装路径,打开config文件夹,编辑 elasticsearch.yml,在里面添加 然后保存退出,重启

    2024年02月14日
    浏览(40)
  • MyBatis and or使用列表控制or条件

    背景:最近项目需要,师傅可以查找订单,而师傅是指定可以服务2到3个区域,故需要使用到and, or条件的组合,以下记一下代码。 最重要的代码是: 1、构建ListConsumerLambdaQueryWrapperT andConditions; 2、从列表中填好 andConditions使用 and, or; 3、queryWrapper使用and中使用for得到所有的

    2024年02月13日
    浏览(37)
  • java 整合ES实现文档增删改查(多条件分页查询)

    本文采用ES版本为8.7.1 由于只存储文章,仅用固定索引即可,索引用kibanna直接生成,省略索引部分的增删查步骤 抓取返回信息是因为版本问题无法解析ES返回的正确信息,实际操作成功但是会报错 我这边只需要单索引操作,有需求的可以让前端传过来

    2024年02月13日
    浏览(39)
  • ES-1:Java的 ElasticsearchTemplate Or ElasticsearchRepository基础常用查询写法

    目录 安装elasticsearch maven 数据来源: 网易数据 mysql的相关语法 Java代码 = in like between  and is null is not null order by max min avg sum (发现es新语法 stats 直接统计聚合)

    2024年02月15日
    浏览(47)
  • MySQL查询条件OR导致模糊查询失效

    起因:查出来的列表数据,通过查询条件过滤,发现过滤条件并不起作用 检查发现:where查询条件里面有or的过滤条件,用来进行权限控制,模糊查询条件本来是起效果的,但是OR的条件一执行,就有多了些数据 代码: 期望的结果:先查出来所有符合要求的,然后再根据过滤

    2024年01月22日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包