public static Query parserSearchFilters()

in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/util/TablestoreHelper.java [679:710]


    public static Query parserSearchFilters(Filter metadataFilter) {
        if (metadataFilter == null) {
            return QueryBuilders.matchAll().build();
        }
        if (metadataFilter instanceof AbstractConditionFilter) {
            if (metadataFilter instanceof And) {
                BoolQuery.Builder bool = QueryBuilders.bool();
                for (Filter filter : ((And) metadataFilter).getFilters()) {
                    bool.must(parserSearchFilters(filter));
                }
                return bool.build();
            } else if (metadataFilter instanceof Or) {
                BoolQuery.Builder bool = QueryBuilders.bool();
                for (Filter filter : ((Or) metadataFilter).getFilters()) {
                    bool.should(parserSearchFilters(filter));
                }
                return bool.build();
            } else if (metadataFilter instanceof Not) {
                BoolQuery.Builder bool = QueryBuilders.bool();
                for (Filter filter : ((Not) metadataFilter).getFilters()) {
                    bool.mustNot(parserSearchFilters(filter));
                }
                return bool.build();
            } else {
                throw Exceptions.illegalArgument("unsupported filter type:%s, filter:%s", metadataFilter.getClass(), metadataFilter);
            }
        } else if (metadataFilter instanceof AbstractOperationFilter) {
            return parseSearchFilter((AbstractOperationFilter) metadataFilter);
        } else {
            throw Exceptions.illegalArgument("unsupported filter type:%s, filter:%s", metadataFilter.getClass(), metadataFilter);
        }
    }