The Search Engine

The built-in search engine in IMatch allows for fast search and filter operations.
It is used by the File Window Search Bar, the Filter Panel and other features.

Searching the Database

IMatch keeps a copy of the metadata extracted from your files in the database. This gives IMatch fast access to the data and also makes the data available whether the files are on-line or not. The data volume cached by IMatch can become quite huge, especially if you manage hundreds of thousands of files in your database.

When you search for files using metadata like keywords, headline or description, IMatch first retrieves the data for these tags from the database and then searches within these values to find data matching your search term.

The performance here mostly depends on how many files your database contains and how fast your computer is. Each image file produces between 50 and 300 metadata tags. A database with only 100,000 files can easily contain between 5 million and 30 million metadata values - which is quite a lot!

The Search Engine in IMatch allows you to control precisely where IMatch searches. For example, you can search only in file names, limit the search to keywords and other commonly used tags, search in Attributes or everywhere (which is of course the slowest search).

Search Scope - Where to Search

Most search operations in IMatch search in the current scope, which is defined by the files loaded into the active File Window.

If you work in the Media & Folders View and you select a folder, the File Window search bar searches in the files of this folder. If you work in the Category View, the search bar operates on the files in the selected category (and optionally it's child categories).

To search the entire database, select the Database node in the Media & Folders View or the @All category.

Searching with the File Window Search Bar

The File Window Search Bar is the most often used and simplest way to search the current scope.

Searching with the Filter Panel

The Metadata Search Filter gives you full control over the data you include in your search. You can search every tag in the database, or limit the search to one or more groups or even individual tags. This allows for very controlled searches.

The File Name Filter has some special options to search file and folder names. It can be combined with other filters as needed.

Search Syntax

The syntax of the search engine (how you tell it what to search for) is simple. Most features working with the search engine offer you search modes like contains, starts with, is etc.

This search mode controls how the search engine treats your search pattern. In most situations you are using the contains mode, which finds all tags containing the search pattern. For example:

beach

will find all files containing the word beach somewhere.

If you instead use the starts with search mode, the same pattern will find "beach club" but not "at the beach" because only values beginning with beach are considered as matches. The ends with mode finds "at the beach" but not "beach club".

The search in IMatch is not case-sensitive.

The term

sun

will match "sun", "Sun", "SUN", "sunny", "Sunny" or "sun-dried". If you set the search mode to is instead of contains, IMatch looks for exact matches (still not case-sensitive).

For full control over the search, use the Metadata Search in the Filter Panel.

Boolean Operators

When you specify multiple words, e.g.

beach club

the search engine looks for exactly the given term. It will find "A day at the beach club" but not "Daytona beach" or "club hopping".

OR

To find all files either containing the word "beach" or the word "club" you use the OR operator:

beach OR club

All Boolean operators must be written in upper-case and separated by a single space on each side from the other parts of your pattern.

AND

To find all files containing the word beach and the word "club" you use the AND operator:

beach AND club

NOT

To find all files containing the word beach but not the word "club" you use the AND NOT operator:

beach AND NOT club

You cannot start a search expression with a Boolean operator like NOT, AND or OR. A term like NOT beach is not allowed. mountain NOT beach is valid.

Using ( and )

Sometimes it may be required to specify an operator precedence when using complex search terms with multiple Boolean operators. In this case you can use parentheses to tell IMatch exactly what you mean:

beach OR sun AND club
beach OR (sun AND club)

are two different expressions.

Using Quotes

If your search term contains OR, AND or NOT in upper-case, you can use quotes:

"TO BE OR NOT TO BE"

Since you have quoted the phrase, IMatch searches for "to be or not to be" and does not consider OR and NOT as Boolean operators. Note that you need quotes only when the operator is written in all upper-case. "or" or "Or" or "oR" are not considered as operators.

The same is true for searching for terms containing ( or ). To find any file with a name containing a ( you need to escape the bracket:

"("

If your search term contains % or _ it must be quoted:

"DSC_"

The AND/NOT Mode

By default, the search engine applies the Boolean operators to the same tag. Consider a file with the following metadata:

TagValue
DescriptionThis image was taken at the big pool party at the beach club. We had a lot of fun that day.
MakeNikon
ModelD600
Keywordsbeach
club
fun
pool
party
family
friends
vacation
caribbean

 

You search forResult
pool partySuccess. The term pool party is contained in the description.
NikonSuccess. The term Nikon is contained in the Make value.
beach OR clubSuccess. Both words are contained in the description and also in the keywords.
beach AND clubSuccess. Both words are contained in the description.
Nikon AND D300Fail. The words Nikon and D300 are in different tags.
family AND vacation  Fail. The words family and vacation are in different keywords. All metadata standards store keywords as separate elements for the keyword tag, and this is how the search engine sees them.

AND (and NOT) are special because how they are to be applied depends on the results you expect. There are two situations:

The File Window Search Bar and the Metadata Search Filter allow you to specify whether you want to apply AND/NOT to individual tags or all tags in the file.

In the above case, when we want to find all files taken with the Nikon D600 camera, we would use the search pattern "Nikon AND D600" and also set the AND/NOT mode to consider all tags in the file.

Also, when you are searching for combinations of keywords, you'll have to use the all tags AND/OR mode.

It is usually more effective and easier to use the Category View or the Category Filter to see which files contain specific keywords or combinations thereof.

The all tags AND/NOT is slower than the normal per-tag mode and requires longer to return results.

Searching Attributes

All of the above also works for Attributes as well, if you use the search engine to search Attributes (e.g. in the File Window Search Bar).

The Attributes Filter has some additional functions, specific for Attributes.