public static Query parseSearchFilter()

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


    public static Query parseSearchFilter(AbstractOperationFilter metadataFilter) {
        if (metadataFilter instanceof Eq) {
            Eq eq = (Eq) metadataFilter;
            return QueryBuilders.term(eq.getKey(), eq.getValue()).build();
        } else if (metadataFilter instanceof Exists) {
            Exists op = (Exists) metadataFilter;
            return QueryBuilders.exists(op.getKey()).build();
        } else if (metadataFilter instanceof Gt) {
            Gt gt = (Gt) metadataFilter;
            return QueryBuilders.range(gt.getKey()).greaterThan(gt.getValue()).build();
        } else if (metadataFilter instanceof Gte) {
            Gte gte = (Gte) metadataFilter;
            return QueryBuilders.range(gte.getKey()).greaterThanOrEqual(gte.getValue()).build();
        } else if (metadataFilter instanceof In) {
            In in = (In) metadataFilter;
            TermsQuery.Builder terms = QueryBuilders.terms(in.getKey());
            for (Object value : in.getValues()) {
                terms.addTerm(value);
            }
            return terms.build();
        } else if (metadataFilter instanceof Lt) {
            Lt lt = (Lt) metadataFilter;
            return QueryBuilders.range(lt.getKey()).lessThan(lt.getValue()).build();
        } else if (metadataFilter instanceof Lte) {
            Lte lte = (Lte) metadataFilter;
            return QueryBuilders.range(lte.getKey()).lessThanOrEqual(lte.getValue()).build();
        } else if (metadataFilter instanceof NotEq) {
            NotEq notEq = (NotEq) metadataFilter;
            return QueryBuilders.bool().mustNot(QueryBuilders.term(notEq.getKey(), notEq.getValue()).build()).build();
        } else if (metadataFilter instanceof NotIn) {
            NotIn notIn = (NotIn) metadataFilter;
            TermsQuery.Builder terms = QueryBuilders.terms(notIn.getKey());
            for (Object value : notIn.getValues()) {
                terms.addTerm(value);
            }
            return QueryBuilders.bool().mustNot(terms.build()).build();
        } else if (metadataFilter instanceof TextMatch) {
            TextMatch match = (TextMatch) metadataFilter;
            return QueryBuilders.match(match.getKey(), match.getValue()).build();
        } else if (metadataFilter instanceof TextMatchPhrase) {
            TextMatchPhrase matchPhrase = (TextMatchPhrase) metadataFilter;
            return QueryBuilders.matchPhrase(matchPhrase.getKey(), matchPhrase.getValue()).build();
        } else if (metadataFilter instanceof VectorQuery) {
            VectorQuery vectorQuery = (VectorQuery) metadataFilter;
            KnnVectorQuery.Builder builder = QueryBuilders.knnVector(vectorQuery.getKey(), vectorQuery.getTopK(), vectorQuery.getQueryVector());
            if (vectorQuery.getFilter() != null) {
                builder.filter(parserSearchFilters(vectorQuery.getFilter()));
            }
            if (vectorQuery.getMinScore() != null) {
                builder.minScore(vectorQuery.getMinScore());
            }
            return builder.build();
        } else {
            throw Exceptions.illegalArgument("unsupported filter type:%s, filter:%s", metadataFilter.getClass(), metadataFilter);
        }
    }