RHS = right-hand side of the expression
LHS = left-hand side of the expression
Case-sensitivity
Operators with_cs suffix are case-sensitive.
When two operators do the same task, use the case-sensitive one for better performance.
For example:
- Instead of
=~, use== - Instead of
in~, usein - Instead of
contains, usecontains_cs
Best practices
- Use case-sensitive operators when you know the case to improve performance.
- Avoid complex regular expressions for basic matching tasks. Use basic string operators instead.
- When matching against a set of values, ensure the set is as small as possible to improve performance.
- For matching substrings, use prefix or suffix matching instead of general substring matching for better performance.
Equality and inequality operators
Operators:==!==~!~in!inin~!in~
- Use
==or!=for exact match comparisons when case sensitivity is important. - Use
=~or!~for case-insensitive comparisons or when you don’t know the exact case. - Use
inor!infor checking membership within a set of values which can be efficient for a small set of values.
Subsequence-matching operators
Operators:contains!containscontains_cs!contains_csstartswith!startswithstartswith_cs!startswith_csendswith!endswithendswith_cs!endswith_cs
contains_cs, startswith_cs, endswith_cs) when you know the case to improve performance.
Regular-expression-matching operators
Operators:matches regex!matches regex
Term-matching operators
Operators:has!hashas_cs!has_cshasprefix!hasprefixhasprefix_cs!hasprefix_cshassuffix!hassuffixhassuffix_cs!hassuffix_cs
- Use
hasorhas_csfor term matching which can be more efficient than regular expression matching for simple term searches. - Use
has_cswhen you know the case to improve performance. - Unlike the
containsoperator, which matches any substring, thehasoperator looks for exact terms, ensuring more precise results.