There are couple of ways on how to manage your searching within Vidispine, the two most commonly types are called "string-exact" and "string":
- "string-exact" is case-sensitive, and treats the search phrase as a single token and wants to match the whole phrase.
- "string" is case-insensitive, and splits the search phrase into tokens, one token for each word, and then searches for items containing any of the tokens.
If you search for "the video" and a field is "string" then it will search for fields containing "the", "video" or both (which could be a lot since "the" is a common word) If you search for "the video" and a field is "string-exact" then it will search for fields containing the string "the video".
Example customer case;
1. If a field is “string-exact”, then it means that searching for “the” will not find “The”.
2. If a field is “string”, then it means that searching for “the” will also find “THE”.
We can’t seem to find a way to search against Vidispine where a search is always case-insensitive. As a result we do not know if our fields should be "string-exact" or "string".
How can we accomplish what we're trying to do?
1) Create a field named "filename" with type "string" which stores the filename as it is.
2) Create a field named "filename_lower" with type "string-exact" which stores the filename but as lowercase.
Then if someone search for "White" then you lowercase that and search for
<operator operation="AND"> <field> <name>filename</name> <value>white*</value> </field> <field> <name>filename_lower</name> <value>white*</value> </field> </operator>
The first field will filter so that you get everything that contains "white" as a insensitive token. The next field filters that it has to start with lowercase "white" and since all "filename_lower" are lower case and indexed as one token we get the desired results.
More information on strings and how to set it up;