--- title: Search Matchers --- ### Search Matchers List of all possible predicates | Predicate | Description | Notes | | ------------- | ------------- |-------- | | `*_eq` | equal | | | `*_not_eq` | not equal | | | `*_matches` | matches with `LIKE` | e.g. `q[email_matches]=%@gmail.com`| | `*_does_not_match` | does not match with `LIKE` | | | `*_matches_any` | Matches any | | | `*_matches_all` | Matches all | | | `*_does_not_match_any` | Does not match any | | | `*_does_not_match_all` | Does not match all | | | `*_lt` | less than | | | `*_lteq` | less than or equal | | | `*_gt` | greater than | | | `*_gteq` | greater than or equal | | | `*_present` | not null and not empty | Only compatible with string columns. Example: `q[name_present]=1` (SQL: `col is not null AND col != ''`) | | `*_blank` | is null or empty. | (SQL: `col is null OR col = ''`) | | `*_null` | is null | | | `*_not_null` | is not null | | | `*_in` | match any values in array | e.g. `q[name_in][]=Alice&q[name_in][]=Bob` | | `*_not_in` | match none of values in array | | | `*_lt_any` | Less than any | SQL: `col < value1 OR col < value2` | | `*_lteq_any` | Less than or equal to any | | | `*_gt_any` | Greater than any | | | `*_gteq_any` | Greater than or equal to any | | | `*_lt_all` | Less than all | SQL: `col < value1 AND col < value2` | | `*_lteq_all` | Less than or equal to all | | | `*_gt_all` | Greater than all | | | `*_gteq_all` | Greater than or equal to all | | | `*_not_eq_all` | none of values in a set | | | `*_start` | Starts with | SQL: `col LIKE 'value%'` | | `*_not_start` | Does not start with | | | `*_start_any` | Starts with any of | | | `*_start_all` | Starts with all of | | | `*_not_start_any` | Does not start with any of | | | `*_not_start_all` | Does not start with all of | | | `*_end` | Ends with | SQL: `col LIKE '%value'` | | `*_not_end` | Does not end with | | | `*_end_any` | Ends with any of | | | `*_end_all` | Ends with all of | | | `*_not_end_any` | | | | `*_not_end_all` | | | | `*_cont` | Contains value | uses `LIKE` | | `*_cont_any` | Contains any of | | | `*_cont_all` | Contains all of | | | `*_not_cont` | Does not contain | | `*_not_cont_any` | Does not contain any of | | | `*_not_cont_all` | Does not contain all of | | | `*_i_cont` | Contains value with case insensitive | uses `ILIKE` | | `*_i_cont_any` | Contains any of values with case insensitive | | | `*_i_cont_all` | Contains all of values with case insensitive | | | `*_not_i_cont` | Does not contain with case insensitive | | `*_not_i_cont_any` | Does not contain any of values with case insensitive | | | `*_not_i_cont_all` | Does not contain all of values with case insensitive | | | `*_true` | is true | | | `*_false` | is false | | See full list: https://github.com/activerecord-hackery/ransack/blob/master/lib/ransack/locale/en.yml#L15