Interface ModelObjectsSearch<T extends ModelEntity>

All Superinterfaces:
Iterable<T>, IterableWithSize<T>
All Known Subinterfaces:
ModelObjectsSearchWithTemplates<T>

public interface ModelObjectsSearch<T extends ModelEntity> extends IterableWithSize<T>
This interface acts both as the builder for Lucene searches and the iterable of the results. It can be used like the following: for(WorkItem wi: transaction.workItems().search().query("my query")){... The iterator never returns null values. All search parameters, specified by using methods like query(String), are optional. Special caching is in place (historical-queries-sizes in EHCache) for the object count that matches historical queries, (where the baseline revision is not null), so calling only IterableWithSize.size() in these cases is much faster than iterating over the items.
Since:
3.9.0
  • Method Details

    • query

      @NotNull ModelObjectsSearch<T> query(@Nullable String query)
      Lucene query. Only the last value is used when the method is called more than once.
    • sort

      @NotNull ModelObjectsSearch<T> sort(@Nullable String sort)
      Specifies the sort order for the search results using a Lucene sort string. If the sort string is null, search results are sorted by relevance. (They are ranked based on their relevance to the query.)

      If a sort string is provided, it determines the sorting criteria as follows:
      • Use ~[sort field] to sort in descending order.
      • Use [sort field] to sort in ascending order.
      • Multiple criteria can be specified by separating them with spaces. The first criterion is applied first.

      For example:
      • sort="severity ~updated" will sort the results by severity in ascending order and by updated in descending order.
      In this example, results are first sorted by severity in ascending order. For items with the same severity, they are further sorted by updated in descending order.
    • baseline

      @NotNull ModelObjectsSearch<T> baseline(@Nullable String revision)
      Revision of the baseline that the search should be executed for. Only the last value is used when the method is called more than once.
    • limit

      @NotNull ModelObjectsSearch<T> limit(int limit)
      The maximum number of items to be returned, -1 for unlimited. Only the last value is used when the method is called more than once.
    • offset

      @NotNull ModelObjectsSearch<T> offset(int offset)
      The number of first items to exclude from the result list. If the offset exceeds the total number of objects, an empty list is returned. Only the last value is used when the method is called more than once.
      Since:
      3.23.4