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);
    

  • 相关阅读:
    C#生成唯一值的方法汇总
    Ajax && json在springmvc中的使用
    spring集成mybatis
    mybatis iBatis
    springjdbc
    拦截器
    系统分层
    Java反射(reflect)
    springmvc
    spring 之 使用注解简化配置
  • 原文地址:https://www.cnblogs.com/IT-study/p/7988525.html
Copyright © 2011-2022 走看看