code: public SearchResult<WorkflowSummary> search(
              @Nullable Integer start, @Nullable Integer size,
              @Nullable String sort, @Nullable String freeText, @Nonnull String query) {
          Preconditions.checkNotNull(query, "query cannot be null");
  
          SearchPb.Request.Builder request = SearchPb.Request.newBuilder();
          request.setQuery(query);
          if (start != null)
              request.setStart(start);
          if (size != null)
              request.setSize(size);
          if (sort != null)
              request.setSort(sort);
          if (freeText != null)
              request.setFreeText(freeText);
  
          WorkflowServicePb.WorkflowSummarySearchResult result = stub.search(request.build());
          return new SearchResult<WorkflowSummary>(
                  result.getTotalHits(),
                  result.getResultsList().stream().map(protoMapper::fromProto).collect(Collectors.toList())
          );
      }
docs: Paginated search for workflows based on payload
  
  @param start    start value of page
  @param size     number of workflows to be returned
  @param sort     sort order
  @param freeText additional free text query
  @param query    the search query
  @return the {@link SearchResult} containing the {@link WorkflowSummary} that match the query