AppThena - Hints and Tips

The Search Page

Comparing Properties to the Empty Value

This section explains what happens if you specify the property name and operator for a search but leave the value box empty.

AppThena treats the empty value as if it means null. It assumes that null comes first in the natural ordering of any property. This means that you can use the empty value to find all objects whose property is null by comparing the property to the empty string. It also means that the ">=" operator returns every object as every value is null or later than null in the natural order.

One minor exception to this rule is that if the property is a string of any kind then the empty value is assumed to be equal to the empty string as well as null. AppThena assumes that the empty string, like null, comes before any other string value in the natural order of strings.

Text-Based Searches

The contains all, contains any and starts with operators can be used to search string-based properties for sub-strings.

As you might expect, the starts with operator matches an object if the chosen property begins with the search value. For example, "Fred" matches "Frederick" and "Freda".

The contains all and contains any operators take a list of search values separated by spaces. The search treats each of these search values as a sub-string which it compares to the chosen property. contains all matches an object if the property contains all the sub strings. contains any matches if the property contains at least one of the sub-strings. It doesn't matter whether the sub-strings overlap or not. For example, contains all with the value "per amp" matches "Volts per amp", "amperage" and "clamps have perished".

Note that the text-based operators always match the empty value. e.g. "Any Property" "starts with" "" will match every object.

These search conditions are only available with string properties because the searches are carried out by the database server and the server's string representation for most types is different to the user interface's representation. For example, a date might be formatted as "10-1-2001" in the database server but "1st Jan 2001" in the user interface.

Case Sensitive String Comparisons

Whether text queries are case sensitive or not depends on the database server configuration. There's no way to control case sensitivity from the search page because SQL doesn't include a way to specify case sensitivity in queries.

Searching with "Any Property"

If you chose "Any Property" instead of picking a particular property for the search, then AppThena returns all objects that have at least one property that matches the search terms.

"Any Property" and contains all combine to form a powerful search tool. In this case, an object matches the search if all the sub-strings in the search value can be found in any combination of properties. The sub-strings don't all have to be in the same property.

Hidden and Unsearchable Properties

Hidden properties and properties which don't support searching are not displayed in the list of properties on the search page.

Hidden properties aren't searched when you set the property name to "Any Property". This means that the user is never presented with search results that don't seem to match the search criteria.