Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

A Comparison Type determines how the Filter does its filtering. 

filter's Comparison Type is defined during the creation of the filter:

Creation of a filter

The Comparison Type of a filter can be edited in the The Details panel.

There are 22 different Comparison Types

FreeText

This Comparison Type is unique. All Filters with a FreeText Comparison Type are gathered into a single filter with an ID of "freetext". 

Here is an example to help you grasp the concept:

search with a single free text filter:

And to keep it simple, the DAM Center, which I am using, only has one asset:

The title of the asset is "Hydrangeas".

Because the search only has one free text filter, the string, which the parameter is compared to, will be "Hydrangeas".

The asset has two keywords: "flower" and "summer", so if you were to add a Keywords free text filter, the string, which the parameter is compared to, will be "Hydrangeas flower summer", ie "Title Keyword Keyword".

The asset has a description of "pretty flower", so if you were to add a Description free text filter, the string, which the parameter is compared to, will be "Hydrangeas flower summer pretty flower", ie "Title Keyword Keyword Description".

The "comparison" is a Contains function, ie the filter will return any assets, whose "free text string" contains the parameter, eg a parameter of "flower" will return the asset. The parameter "flo" will not return the asset. However, the parameter "flo*" will return the asset; as will the parameter "*wer".


Due to the inner workings of how such filters work, any search, which has a freetext filter, MUST be populated (see UseSolr for a guide on how to populate a search).

Equals

Tests whether a Filter's parameter matches exactly with the data, the filter works on.

An example filter:


This filter filters out any results, whose ID does not match a supplied ID.

Accepts a single parameter.

EqualsWithZeroAsNull

The same as Equals, but treats a value of "0" as null.

Accepts a single parameter. 

EqualsOrNull

The same as with Equals except that results with a null value are not filtered out.

Accepts a single parameter.

AllInList

Filters out any items with data, which does not exactly match all the supplied parameters.

An example filter:

This filter will filter out any items, whose keywords does not contain the supplied keywords, ie if an asset has the keywords "pink", "fluffy", "SithLord" and a user inputs "pink" and "kitten", then the "pink fluffy Sith lord" asset will be filtered out. If the user inputs "pink" and "fluffy" then the Sith lord will be returned.  

Accepts 1-many parameters.

InList

Filters out any items with data, which does not exactly match any of the supplied parameters.

Example:

Using this filter, if a user inputs "pink" and "kitten", then in this case, the "pink fluffy sith lord" will not be filtered out because one of the asset's keywords is "pink".

NotInList

Filters out any results, which does match any of the supplied parameters. 

Example:


If a user inputs "pink" and "kitten" then the "pink fluffy sith lord" asset will be filtered out, because one of its keywords is "pink".

Like

Works almost exactly like the SQL "like" operator. 

The easiest way to understand the differences is with a brief example:

The filter:

If the user inputs a parameter with value "key", the final like statement is "like 'key%", ie any meta fields, which does not have a name starting with "key", are filtered out.

If the user inputs "*key*" or "*key", the like statement becomes "like %key%". 

Between

"Between" is a very specific Comparison Type: it can only be used with filters, which does work on dates or DateTimes, eg "asset.start_date" and "asset.end_date".

If a similar functionality is needed, but in the context of data other than dates or DateTimes, eg filtering out results whose IDs are between 5 and 11, that functionality MUST be mimicked by creating two filters. An example of such two filters can be two filters with respective Comparison Types of LessThanwith a parameter value of 11 and GreaterThan, with a parameter value of 5.

GreaterThan

Filters out any results whose data is not greater than the supplied parameter, ie it works exactly like the ">" operator.

LessThan

Filters out any results whose data is not less than the supplied parameter, ie it works exactly like the "<" operator.

EqualsOrGreaterThan

Filters out any results whose data is not equal to or greater than the supplied parameter, ie it works exactly like the "=>" operator.

EqualsOrLessThan

Filters out any results whose data is not equal to or less than the supplied parameter, ie it works exactly like the "=<" operator.

RecursiveLayoutfolder
RecursiveDamcatalogfolder
RecursiveUserfolder
IsDescendantOf
Empty
NotEmpty
EmptyCheckField
NotEmptyCheckField

  • No labels