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