elastic的基本操作

es的查询构造



        QueryBuilder queryBuilder ;
        BoolQueryBuilder boolQueryBuilder;
        switch (conditionItem.op()){

            case CompareChar.COMPARE_EQ:
                queryBuilder = QueryBuilders.termQuery(conditionItem.field(),conditionItem.value());
                break;
            case CompareChar.COMPARE_NE:
                boolQueryBuilder = QueryBuilders.boolQuery();
                boolQueryBuilder.mustNot(QueryBuilders.termQuery(conditionItem.field(),conditionItem.value()));
                queryBuilder = boolQueryBuilder;
                break;
            case CompareChar.COMPARE_GE:
                queryBuilder = QueryBuilders.rangeQuery(conditionItem.field()).gte(conditionItem.value());
                break;
            case CompareChar.COMPARE_GT:
                queryBuilder = QueryBuilders.rangeQuery(conditionItem.field()).gt(conditionItem.value());
                break;
            case CompareChar.COMPARE_LE:
                queryBuilder = QueryBuilders.rangeQuery(conditionItem.field()).lte(conditionItem.value());
                break;
            case CompareChar.COMPARE_LT:
                queryBuilder = QueryBuilders.rangeQuery(conditionItem.field()).lt(conditionItem.value());
                break;
            case CompareChar.COMPARE_LIKE:
              /*  queryBuilder = QueryBuilders.matchQuery(conditionItem.field(),conditionItem.value());*/
                queryBuilder = QueryBuilders.wildcardQuery(conditionItem.field(),"*"+conditionItem.value()+"*");
                break;
            case CompareChar.COMPARE_LIKE_LEFT:
                queryBuilder = QueryBuilders.wildcardQuery(conditionItem.field(),conditionItem.value()+"*");
                break;
            case CompareChar.COMPARE_LIKE_RIGHT:
                queryBuilder = QueryBuilders.wildcardQuery(conditionItem.field(),"*"+conditionItem.value());
                break;
            case CompareChar.COMPARE_IS_NULL:
                boolQueryBuilder = QueryBuilders.boolQuery();
                boolQueryBuilder.mustNot(QueryBuilders.existsQuery(conditionItem.field()));
                queryBuilder = boolQueryBuilder;
                break;
            case CompareChar.COMPARE_IS_NOT_NULL:
                queryBuilder = QueryBuilders.existsQuery(conditionItem.field());
                break;
            case CompareChar.COMPARE_BETWEEN:
                queryBuilder = QueryBuilders.rangeQuery(conditionItem.field()).
                        gte(conditionItem.lowValue()).lte(conditionItem.highValue());
                break;
            case CompareChar.COMPARE_IN:
//                queryBuilder = QueryBuilders.idsQuery().queryName(conditionItem.field()).addIds(conditionItem.strValueArray());
                queryBuilder = QueryBuilders.termsQuery(conditionItem.field(), conditionItem.valueArray());
                break;
            case CompareChar.COMPARE_NOT_IN:
                boolQueryBuilder = QueryBuilders.boolQuery();
                boolQueryBuilder.mustNot(QueryBuilders.idsQuery().queryName(conditionItem.field()).addIds(conditionItem.strValueArray()));
                queryBuilder = boolQueryBuilder;
                break;
            default:
                queryBuilder = null;
                break;
        }

        return queryBuilder;

es联合查询

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值