Search Functionality
This section describes the different types of search criteria available in the STEP system as well as some basic search functions.
Important: Calculated attribute values are generated on-the-fly. Searching for the value of a calculated attribute is not allowed since generating all possible calculations would cause substantial performance issues.
Standard Search Criteria
The standard search criteria named 'Search' allows you to find objects based on name, ID, attributes and their values.
A text string entered in the search field will search for object names, IDs, or attribute values where the text occurs.
If you enter a text string and click the Search button, search finds objects with an ID, and/or a name and/or an attribute and/or their values matching the entered string. You can further refine standard searches as shown below.
Note: By default, standard searches are case insensitive for name and attribute value searches, but are case sensitive for ID searches. You can make name and attribute value searches case sensitive using the Advanced option 'Match Case on Names and Values.' For more information on the options available under advanced, refer to the Search: Advanced Options topic here.
Search Field Typeahead
Once you start typing in the standard search criteria text field, the system suggests possible entries matching the typed in text (case insensitive), and displays them on a dropdown menu as shown below.
In the typeahead menu, objects are displayed with their relevant icon, then name, and then ID in brackets. Attribute values are shown as text.
Items can be selected from the menu using either the mouse or the keyboard 'arrow up' and 'arrow down' keys. A maximum of 100 items will be displayed.
Note: Using sharedconfig.properties entries, it is possible for a system administrator to control the behavior of the typeahead. E.g., after how many entered characters should suggestions be shown, etc. Search for the 'TypeAhead' section on the Configuration tab. For more information, refer to the Configuration topic in the Administration Portal documentation here.
Limiting Results to Matches on IDs
You can limit standard searches to match on ID only by entering 'ID = ' at the beginning of the text field as shown below.
'id' and 'Id' will also work, as the spaces on each side of the equals sign are optional.
Limiting Results to Matches on Name
You can limit standard searches to match only on name by entering "Name = " at the beginning of the text field as shown below.
"name" and "NAME" will also work since the spaces on each side of the equals sign are optional.
Attribute Value Searches
Using a standard search, you can limit the result to only match on values for specific Attributes.
Important: Calculated attribute values cannot be searched since they are generated only when viewed or processed.
There are at least three ways to construct an attribute search query:
- Start entering an attribute name or ID, then select the relevant attribute from the typeahead menu, after which "Attribute Name (Attribute ID)" is inserted in the text field, then enter a search operator or enter a SPACE and select an operator from the typeahead menu and enter the value to search for.
- Enter the attribute ID (case sensitive), enter a search operator or enter a SPACE and select an operator from the typeahead menu, then enter the value to search for.
- Enter the attribute name (case insensitive), enter a search operator or enter a SPACE and select an operator from the typeahead menu, then enter the value to search for.
Note: As shown on the screenshot above, if you have the required privileges you will get typeahead suggestions on existing values after having specified a search operator.
Attribute Value Search Operators
The following search operators that can be used when performing attribute value and reference metadata attribute value searches.
Operator |
Description |
---|---|
< |
Less than operator. Only works for number validated attributes (Validation Base Type = number, integer or fraction) |
<= |
Less than or equal to operator. Only works for number validated attributes (Validation Base Type = number, integer or fraction) |
= |
Equal to operator. |
> |
Greater than operator. Only works for number validated attributes (Validation Base Type = number, integer or fraction) |
>= |
Greater than or equal to operator. Only works for number validated attributes (Validation Base Type = number, integer or fraction) |
! |
Operator used for finding objects where the specified attribute does not have values in current context. Note that the search does not check whether the attribute is valid for a given object. Also, if the specified attribute has an inherited value (not a local value), then the object will be listed in the results set even though the value field is not empty. Note: This operator does not perform searches on missing reference metadata attribute values. |
!! |
Operator used for finding objects where the specified attribute does not have local values in any context. Note that the search does not check whether the attribute is valid for a given object. Also, if the specified attribute has an inherited value (not a local value), then the object will be listed in the results set even though the value field is not empty. Note: This operator does not perform searches on missing reference metadata attribute values. |
Wildcards in Searches
Two following two wildcards are available for performing searches on partial text strings:
- * (asterisk ), multi-character, represents any number of characters in a string
- ? (question mark), single character, represents exactly one character
Wildcards can be used anywhere in the text string.
Note: Searches starting with a wildcard should be avoided since they are significantly slower than other searches.
Searches in 'Full Text Indexable' Attribute Values
Searches in values for attributes configured with the 'Full Text Indexable' parameter set to 'Yes' do not work in the same manner as searches in other attribute values. Apart from common English words like 'in' and 'as,' each word is indexed as a separate element. For more information about the words that are not indexed, search the Oracle website for the 'English Default Stoplist.'
For example, consider an attribute named 'Description' that has the following value on a given product:
Black powder coated die-cast aluminum enclosure. Textured surface. Bulk version: Enclosures may possibly have flaws in the finish such as scratches, dents, discoloration, etc.
- If the 'Full Text Indexable' parameter is set to 'Yes' for the attribute, a search for 'Description = aluminum' returns the product.
- If the 'Full Text Indexable' parameter is set to 'No' for the attribute, a search to find this product would require a wildcard on both sides of the 'aluminum' text like this: 'Description = *aluminum*.
Note: Searches starting with a wildcard (as shown above) are significantly slower than other searches.
By default, if you have not specified an attribute, typeahead for Full Text Indexed attribute value entries is turned off. If you have specified an attribute, you will first get typeahead suggestions after having entered three (3) characters of the value entry. Refer to the 'Search Field Typeahead' section above.
While changing this setting is allowed on an existing attribute, it does required special handling. For Oracle databases, this action requires single-update mode (SUM), as defined in the Single-Update Mode topic here. For Cassandra databases, this action uses Lock-free Schema Change (LFSC) functionality, as defined in the Lock-free Schema Change topic here.
Numeric Value Searches for Attributes with Units
Values for numeric searches with no units are assumed supplied in the default unit for the attribute. For example, if kg is the default unit for the 'Weight' attribute, 'Weight = 1' will match '1 kg' and '1000 g'. If no default unit is configured, the search 'Weight = 1' will only match the value '1' with no unit.
ISO Date Searches
If an attribute with the validation type of 'ISO Date,' where the date populated in the field is in the YYYY-MM-DD format, a search on the populated attribute on objects can be performed using the following key words in the Search tab: now, today, tomorrow, yesterday.
While it does not matter if the 'ISO Date' is set to 'Strict Validation' or not, it does matter that the date is written in the YYYY-MM-DD format. Any other format, including using slashes ' / ' instead of dashes '-' will not work since searches work by matching only values conforming to the ISO standard (with dashes). For this reason, it is recommended that 'Strict Validation' be set to Yes, otherwise, the stored values are not guaranteed to be searchable.
In the example below, a user searched for an object that has a particular date. The user typed in the name of the date attribute 'ISO Date', and then used an 'attribute value search operation' followed by the keyword 'tomorrow.' Then they narrowed their search even further to just under one particular node, giving them the desired results.
Combining Search Criteria
You can combine different search criteria to create advanced searches. Except for cases where one or more 'OR' operators are used, the sequence of the criteria does not matter.
The search shown below:
generates the same results as the following search:
When not using 'OR' operators or 'Exclude' search criteria, all criteria are combined with an implicit 'AND' operator.
Click the add criteria button () to construct a query that includes more than one criteria. By default, the criteria will be 'AND,' meaning that all criteria will be met for the results.
As an example, the search shown below will find objects that have the value 'Black' for the 'Color' attribute AND that are present below an 'Audio Visual Equipment' hierarchy node. The order of criteria does not impact the results.
For information on constructing your search using 'Exclude' search criteria and 'OR' operators, refer to the section below.
Using 'Exclude' Search Criteria
It is possible to negate all the different types of search criteria using the 'Exclude' search criteria functionality.
You can add 'Exclude' search criteria to search either by clicking and holding the add criteria button (), then selecting 'Add Exclude' from the menu that displays (shown below). Criteria can also be excluded by clicking an 'exclude' link on the generated 'Search Result Profiling' panel.
'Exclude' search criteria appear with a red minus icon on the left side of the criteria panel (shown below).
When no 'OR' operators are used, the sequence of 'Exclude' search criteria does not affect the results.
Continuing with the example above, the search finds objects where all the 'positive' criteria are met, minus objects where the attribute 'Color' is 'Gray.'
Note: Use as many 'Exclude' search criteria as needed. Keep in mind that the 'Exclude' criteria are subtracted from the 'positive' search results, so a search containing only an 'Exclude' search criteria without an 'Include' criteria as point of departure will not generate any results.
Using the 'OR' Operator
Add an 'OR' operator to search by clicking and holding the add criteria button (), then selecting 'Add OR' from the menu that displays (shown below).
When using 'OR' operators, search is divided into separate parts containing one or more criteria. Each part is, in effect, executed separately and the results are then added before presenting the final result.
As it is not possible to work with parenthesis, when working with 'OR' operators it is often necessary to configure the same criterion on both sides of an 'OR' operator. As an example, the search shown below will return all objects where the name starts with the text 'Hat123' and the color is 'Black,' plus all objects where the name starts with the text 'Hat123' and the color is 'Gray.'