Document toolboxDocument toolbox

Vidispine

Case sensitive vs case insensitive search

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.

So if you only use "string" your search will always be case-insensitive.

 

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”.

  1. 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?  

 

Resolution;

  1. Create a field named "filename" with type "string" which stores the filename as it is.

  1. 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;

How to retrieve collection by name with exact match

http://apidoc.vidispine.com/latest/item/metadata/metadata.html#string-vs-string-exact

http://apidoc.vidispine.com/latest/item/search.html#phrase-search