Allow keyword parsing in a Search Field to be turned off
When using the "Contains" comparison type in a Search Field the basic behavior is useful in many cases, but it can also be problematic. It would be nice to be able to choose whether or not what was entered would taken as a single Literal rather than Parsed.
Here is the issue in more detail.
Contains | Does Not Contain
Keyword is searched within a text field or a file name field. If multiple keywords are entered in the search field, AND operator is assumed between them. User can also provide a desired operator by entering it in ALL CAPS
(reference: http://howto.caspio.com/datapages/reports/search-and-filter-comparison-types/)
The problem is in how the data entered is parsed. Similarly to how a search would work in something like Google, the system presumes spaces are delimiters unless they are enclosed in quotes.
So if your search for: A B it will match against A B C D and D C B A since it gets transformed logically into Contains("A") AND Contains("B")
Now if you search for: "A B" it will match against A B C D but not D C B A since quotes force what is between them to be treated as a single literal.
Generally this behavior is likely just fine and not even noticed, but in certain cases it can matter quite a lot.
Example 1: You want to search for animals with "ABC Farms" in their name. Unless your Users know to add the Quotes they will get all animals which have both ABC and Farms anywhere in their name, rather than ABC Farms. This case is not all that big a problem since it can be solved with a bit of User Education. It would be nice however to be able to disable the functionality and make it act more like it would as just a simple Database Query,
Example 2: This one is a bigger problem since it comes up when a Nefarious User knows too much. What if I only wanted you to be able to look up a case you knew something about... for example the middle 8 numbers of its Case Number. (please grant for the moment there might be some reason to do this... lol). Say a Case Number looks like 2-6 Alpha Characters... 8 Numerals.. and 0-4 Alpha Characters. All the User knows is the middle portion with the 8 Numerals and you only want them to be able to look up cases which contain that specific string. No problem... they enter 12345678 and it finds anything containing that. Enter our Nefarious User who enters 1 OR 2 OR 3 OR 4 OR 5 OR 6 OR 7 OR 8 OR 9 and gets a listing of every case in the system. Yikes!
Parsing what is entered into the Search Field in Keywords in nice Functionality to have available, but we need a way to say NO to it. It would also be nice to be able to choose if the assumed operator will be OR instead of AND.