zoukankan      html  css  js  c++  java
  • Elasticsearch java api 常用查询方法QueryBuilder构造举例

    转载:http://m.blog.csdn.net/u012546526/article/details/74184769

    Elasticsearch java api 常用查询方法QueryBuilder构造举例

    环境

    Elasticsearch版本

    5.1.1

    pom

    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>5.1.1</version>
    </dependency>

    Elasticsearch索引方式

    数字

    {
        "type": "long"
    }
    

    字符串

    {
        "type": "text",
        "fields": {
            "keyword": {
                "type": "keyword",
                "ignore_above": 256
            }
        }
    }
    

    精确查询

    以下字段名用${fieldName}代替,具体值用${fieldValue}代替

    数字

    单个

    QueryBuilder qb1 = QueryBuilders.termQuery("${fieldName}", "${fieldValue}");
    

    批量

    QueryBuilder qb1 = QueryBuilders.termsQuery("${fieldName}", "${fieldValues}");
    

    字符串

    单个

    QueryBuilder qb1 = QueryBuilders.termQuery("${fieldName}.keyword", "${fieldValue}");
    

    批量

    QueryBuilder qb1 = QueryBuilders.termsQuery("${fieldName}.keyword", "${fieldValues}");
    

    模糊查询

    数字

    数字查询都为精确查询

    字符串

    QueryBuilder qb1 = QueryBuilders.moreLikeThisQuery(new String[]{"${fieldName}"}, new String[]{"${fieldValue}"}, null);
    

    范围查询

    数字

    闭区间查询

    QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").from(${fieldValue1}).to(${fieldValue2});
    

    开区间查询

    QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").from(${fieldValue1}, false).to(${fieldValue2}, false);
    

    大于

    QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").gt(${fieldValue});
    
     

    大于等于

    QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").gte(${fieldValue});
    
     

    小于

    QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").lt(${fieldValue});
    

    小于等于

    QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").lte(${fieldValue});
    
     

    多条件查询

    QueryBuilder qb1 = QueryBuilders.moreLikeThisQuery(new String[]{"${fieldName1}"}, new String[]{"${fieldValue1}"}, null);
    QueryBuilder qb2 = QueryBuilders.rangeQuery("${fieldName2}").gt("${fieldValue2}");
    QueryBuilder qb3 = QueryBuilders.boolQuery().must(qb1).must(qb2);
    

  • 相关阅读:
    Web用户的身份验证及WebApi权限验证流程的设计和实现
    开源工作流引擎CCFlow 学习专区
    Jquery Ajax方法传值到action
    再谈Jquery Ajax方法传递到action
    Windows下安装GTK+
    Tex使用
    配置Texmaker中文支持
    软件推荐列表(Recommand Software)
    CAD操作
    Package inputenc Error: Unicode char u8: not set up for use with LaTeX.
  • 原文地址:https://www.cnblogs.com/IT-study/p/7988525.html
Copyright © 2011-2022 走看看