Implied tags index
Implied tags index improves performance of NEQL searches and hierarchy traversal. Implied tags originate from evaluating the tag rules in smart tag dictionaries and evaluating direct tag groups on an entity. Indexing implied tags limits the amount of tag rule re-evaluation that occurs on subsequent NEQL queries.
For example, a NEQL search on an unindexed tag (ex.: c:city) requires that every tag rule that contains this tag be evaluated; every component throughout the station be evaluated for this tag; and this evaluation must be done every time a search for this tag is initiated. All of which adds up to a significant drain on performance.
JACE is constrained not only by processor power but also by memory availability. To control the impact on memory, the Implied Tags Index is disabled by default.
You can enable specific tags for indexing by entering those individual tagIDs in the Indexed Tags field in the Tag Dictionary Service property sheet. Entering tagIDs in this field enables those tags to be indexed for each component in the station. Use a semi-colon separated list to enter multiple tagIDs to be indexed. Tags that are not enabled for indexing will use normal tag rule and direct tag group evaluation.
To stop indexing from occurring on some or all tagIDs and reduce the memory used by this index, remove tagIDs from the Indexed Tags field in the Tag Dictionary Service property sheet.
-
Invalidate All Implied Tags Indexes
-
Invalidate Single Implied Tags Index
Either direct or implied tags can be added to the Indexed Tags field. If an object contains an indexed tag as a direct tag, the index will not be used at all. If the entity does not contain the indexed tag as a direct tag, a search through the rules will be executed to determine if the tag is implied and the index will store whether or not the tag is implied.
-
n:type -
n:point -
n:input -
n:output -
n:device -
n:network -
n:schedule -
hs:connection -
hs:cur -
hs:device -
hs:equip -
hs:kind -
hs:network -
hs:point -
hs:writable
Other implied tags may be riskier because rule conditions and contents can be changed and the changes might not be reflected in the index. Tags that are implied using the HasAncestorRule or HasRelationRule conditions depend on the station configuration and, if the station configuration changes, might affect whether or not tags are implied.
Also, it is not the value of the tag that is indexed but the tag definition. So, if the value of the tag depends on something that changes, those changes will be reflected in the value of the tag when the tag is retrieved from the index. For example, if the history ID of a history extension changes, the new value will be reflected in the value of the n:history tag when it is retrieved.
-
n:name -
n:displayName -
n:ordInSession -
n:station -
hs:curErr -
hs:curStatus -
hs:curVal -
hs:enum -
hs:his -
hs:hisErr -
hs:hisInterpolate -
hs:hisStatus -
hs:id -
hs:maxVal -
hs:minVal -
hs:tz -
hs:unit -
hs:writeErr -
hs:writeLevel -
hs:writeStatus -
hs:writeVal
niagara.tagdictionary.disableTagIndexing set to true. This will prevent any indexing and allow the Indexed Tags field to be cleared. Then, this system property can be cleared and the station restarted to allow indexing again.