Advanced search - create ES search filters for the remaining GLQL fields
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Description
These are the remaining filters that are now used GLQL that need to be integrated with ES for the complete parity. Please refer to GLQL fields docs for more info no how these fields are used within a query:
iterationiteration cadencecustom statuscustom fieldsubscribedemoji reactiontitle
First, this issue has to implemented to have the data available in ES #540799
Implementation
- Create a new search filter for every above GLQL query field, for example,
by_iteration,by_custom_field, etc inee/lib/search/elastic/filters.rb.
- Depending on what operator the field supports, you might need to implement
or_andnot_filters for such GLQL operators asid in (1, 2)orlabel != test - You might also need to add support for
none/anywildcard filters if they are used by GLQL
- Change the work item query builder to use the new filter.
- make sure to gate it by the migration that adds these new fields (for example,
::Elastic::DataMigrationService.migration_has_finished?(:backfill_work_item_milestone_data), we don't want to throw errors in case a field are still being migrated or backfilled
- Explicitly allow these new filters in
AdvancedFinders::WorkItemsFinderby adding it to eitherALLOWED_ES_FILTERS, orNOT_FILTERS, orOR_FILTERS. - Add documentation about the new filter to the list of available filters
Sample MR
Edited by Alisa Frunza