Optimization in KDE-PIM
Improve contains queries.
If we are searching for 2 characters or less, we assume substring
matches anywhere don't make much sense, so we use whole word matching
via the relatively fast bif:contains. If we are looking for longer
substrings, we can search for the substring anywhere, using a regex
filter, or for the substring at the start of words, using a faster regex
that limits to word boundaries. The later is useful in particul for
address completion, which is a frequent enough special case to warrant
optimizing it a bit.