Rewrite and simplify view-filter service.
Rewrite the view filter service to make it easier to verify and fix a bug in the handling of "any" queries: The input filter object representing the parsed search query is translated into a tree of filter primitives, where each primitive is either a TermFilter that tests whether an annotation matches a single (field, term) or a BinaryOpFilter that combines other filters using AND or OR operators. The list of annotations are then matched against the tree's root filter. This system allows a nicer representation of "any" field queries by expanding a query such as "foo bar" into: (quote:foo OR text:foo OR ...) AND (quote:bar OR text:bar OR ...) In the process a mistake was uncovered in a test case for the "any" filter which incorrectly allowed the previous broken implementation to pass.
Showing
Please register or sign in to comment