public SearchResult<WorkflowSummary> searchWorkflowByTasks(
            String query, String freeText, int start, int size, List<String> sortOptions) {
        SearchResult<TaskSummary> taskSummarySearchResult =
                searchTaskSummary(query, freeText, start, size, sortOptions);
        List<WorkflowSummary> workflowSummaries =
                taskSummarySearchResult.getResults().stream()
                        .parallel()
                        .map(
                                taskSummary -> {
                                    try {
                                        String workflowId = taskSummary.getWorkflowId();
                                        return new WorkflowSummary(
                                                executionDAOFacade.getWorkflow(workflowId, false));
                                    } catch (Exception e) {
                                        LOGGER.error(
                                                "Error fetching workflow by id: {}",
                                                taskSummary.getWorkflowId(),
                                                e);
                                        return null;
                                    }
                                })
                        .filter(Objects::nonNull)
                        .distinct()
                        .collect(Collectors.toList());
        int missing = taskSummarySearchResult.getResults().size() - workflowSummaries.size();
        long totalHits = taskSummarySearchResult.getTotalHits() - missing;
        return new SearchResult<>(totalHits, workflowSummaries);
    }
This method removes the task from the un-acked Queue

@param taskId: the taskId that needs to be updated and removed from the unacked queue
@return True in case of successful removal of the taskId from the un-acked queue
core/src/main/java/com/netflix/conductor/service/ExecutionService.java