Affects Version/s: None
Fix Version/s: None
Component/s: Search Infrastructure
The goal of this story is to allow users to select specific clause contributors to participate in the Blueprint's search query.
Currently, Blueprints allow users to select between two frameworks: "Liferay Default Clauses" and "Custom Clauses".
Selecting "Liferay Default Clauses" will use all clause contributors while selecting "Custom Clauses" will use no clause contributors. The former is useful for modifying the existing search algorithm while the latter is useful for creating completely new search algorithm.
However, having only these two options limit users to choosing between "all" or "none". There is no way to use only some of the clause contributors. For example, if a customer is satisfied with the search behavior of all entities except Commerce Products and wants to build a completely custom search algorithm just for Commerce Products, there is currently no way to mix default and custom clause contributors.
This story will provide a way for users to explicitly select which clause contributors to include or exclude as part of the "Custom Clauses" option.
In the edit screen of a Blueprint, when the "Liferay Default Clauses" framework is selected ...
- All clause contributors are always included.
In the edit screen of a Blueprint, when the "Custom Clauses" framework is selected ...
- The UI provides a button that displays a modal window with all the clause contributors.
- All the clause contributors are disabled by default.
- The user can explicitly include/exclude specific clause contributors.
- Clause contributors are grouped into three categories:
- Each clause contributor can display:
- Friendly title (e.g. "Asset Tag Keyword Query Contributor")
- Class name (e.g. com.liferay.asset.tags.internal.search.spi.model.query.contributor.AssetTagKeywordQueryContributor)
- Description (e.g. "This contributor is used to xyz.")
- New clause contributors are set as included. (i.e. if a clause contributor is deployed after a custom clause Blueprint is created, the new clause contributor is set to "include").