The codebase for filter api is overly complicated and confusing both from a users perspective and a developers perspective. A class based filter api would:
Simplify the codebase
Increase maintainability
Enable greater filter customization
Allow a simpler user interface
Implementation Notes
The default simple filter would be a Google-like single textbox.
It may include a select list of fields to search.
Alternatively, administrators may be able to choose lists of fields to search/display for simple/advanced filters
The current search field searches the summary, description, steps to reproduce, additional information, issue bugnotes, bug id, and bugnote id fields.
The new search may include those fields as well as text based custom fields, tags, and in the future, expand to other fields.
Simple stored queries would be converted to advanced queries
hide status would be removed in favour of explicit show status in advanced query
Advanced filter would look similar to the current advanced filter with multi select fields
The text search would employ google-like syntax
A B C - search for issue with A and B and C
“A B C” - search for issue with the phrase “A B C”