Search in sources :

Example 1 with RAW_OBJECT_FIELD

use of org.kie.kogito.persistence.redis.Constants.RAW_OBJECT_FIELD in project kogito-apps by kiegroup.

the class RedisQuery method execute.

@Override
public List<V> execute() {
    io.redisearch.Query query = new io.redisearch.Query(RedisQueryFactory.buildQueryBody(indexName, filters));
    setQueryLimitAndOffset(query);
    if (sortBy != null) {
        query.setSortBy(sortBy.getAttribute(), SortDirection.ASC.equals(sortBy.getSort()));
    }
    RedisQueryFactory.addFilters(query, filters);
    SearchResult search = redisClient.search(query);
    LOGGER.debug(String.format("%d documets have been found for the query.", search.totalResults));
    return search.docs.stream().map(x -> {
        try {
            return JsonUtils.getMapper().readValue((String) x.get(RAW_OBJECT_FIELD), type);
        } catch (IOException e) {
            throw new RuntimeException("Could not deserialize a retrieved object.", e);
        }
    }).collect(Collectors.toList());
}
Also used : List(java.util.List) Logger(org.slf4j.Logger) SearchResult(io.redisearch.SearchResult) LoggerFactory(org.slf4j.LoggerFactory) RAW_OBJECT_FIELD(org.kie.kogito.persistence.redis.Constants.RAW_OBJECT_FIELD) IOException(java.io.IOException) AttributeSort(org.kie.kogito.persistence.api.query.AttributeSort) Query(org.kie.kogito.persistence.api.query.Query) Collectors(java.util.stream.Collectors) Client(io.redisearch.Client) SortDirection(org.kie.kogito.persistence.api.query.SortDirection) AttributeFilter(org.kie.kogito.persistence.api.query.AttributeFilter) Query(org.kie.kogito.persistence.api.query.Query) SearchResult(io.redisearch.SearchResult) IOException(java.io.IOException)

Aggregations

Client (io.redisearch.Client)1 SearchResult (io.redisearch.SearchResult)1 IOException (java.io.IOException)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 AttributeFilter (org.kie.kogito.persistence.api.query.AttributeFilter)1 AttributeSort (org.kie.kogito.persistence.api.query.AttributeSort)1 Query (org.kie.kogito.persistence.api.query.Query)1 SortDirection (org.kie.kogito.persistence.api.query.SortDirection)1 RAW_OBJECT_FIELD (org.kie.kogito.persistence.redis.Constants.RAW_OBJECT_FIELD)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1