Broadleaf Microservices
  • v1.0.0-latest-prod

Search Services Release Notes for 2.0.3-GA

Tip
The 2.x versions are Spring Boot 3 compatible.

New Features & Notable Changes

Support for filters on Order and OrderFulfillment index on the Admin

  • Introduce support for indexing a reduced list of Orders and OrderFulfillments with filters. When selecting one of these index types in the Search > Reindex section of the Admin, a toggle named Enable Index Filters will be displayed. Note: Having filters enabled does not trigger a full reindex, it only indexes the items that meet the filter criteria.

  • With Enable Index Filters enabled:

    • An index can be filtered within a provided date range with the fields Start Date and End Date.

      • When a Start Date is entered, it will index items at or after the provided date.

      • When an End Date is entered, it will index items at or before the provided date.

      • When both are utilized, it will index items between the provided dates.

      • Orders utilize submitDate when filtering by date

      • OrderFulfillments utilize the audit creationTime when filtering by date

    • An index can be filtered by the Tenant with the Should this index across all tenants? toggle.

      • If there are multiple potential Tenants, disabling this will index only the items that are related to the current Tenant context of the Admin.

  • A scheduled job was added which can leverage the Start Date filter of the index job. More details can be found in the Scheduled Job Services release notes.

Support for extensible Indexable entities in SearchServices

  • Custom extensions of JpaOrder, JpaOrderFulfillment, JpaCustomer and JpaProduct can now be indexed easily.

  • The SingleIndexRequest message now contains an additional field _baseClass which would be set to the className of either of the four entities above. The custom extension will still be populated in the _class field of the message.

  • AbstractSingleIndexRequestHandler will now evaluate whether the field is indexable based on the presence of _baseClass first and use _class as a fallback.

    • The benefit here is that the client does not have to extend/override the ProductHandler component itself to explicitly declare support for ClientProduct.class. The _baseClass can directly be used now.

Performance improvements for Indexer

  • Documents are written in consistently sized chunks to Solr.

  • Common index worker logic is moved to a Utility class in indexer-common for all Indexable types to use.

  • Properties discriminated by Indexable type are added to configure chunk size for Solr updates.