Visual Query condition restrictions
In order to create a configuration file that helps you to manage your Visual Query performance effectively, it is important to understand the available restrictions. Having a proper understanding of the implications of the rules that can be created, allows you to reduce the number of iterations required.
The sample visual-query-configuration.xml file in toolkit/examples/visual-query includes commented-out examples of rules applicable to the law enforcement schema. Using these examples as guidance, you can create rules that apply to your system.
Depending on your circumstances, there are two main approaches that can be used to create your rules:
- Invalidating a particular type of query
If you are aware of query types that are an issue, you can deny the specific conditions that lead to the issue, allowing all other Visual Query behavior to remain unchanged.
- Enabling specific queries
If you are uncertain about the type of queries that might produce an issue, or want to restrict the types of searches that can be carried out, you can deny all conditions, and selectively allow the types of query that you require.
As you build up your Visual Query configuration file, it is worth bearing in mind the following key concepts:
- Rule components
Each rule consists of the following components:
- Rule Type - Whether the rule should allow or deny a specific type of operation
- Item Type - Which Item Type the rule should apply to
- Property Type - Which Property Types for the specified Item Type that the rule should cover
- Operator - Which Operator Types to apply the rule to
- Date and Time Aspects - Which types of temporal aspect to apply the rule to. For example, day of the week, or time of the day.
- Implicit 'all valid'
If one or more of the above rule components are not specified, the rule will be applied to all the Visual Query conditions that would be valid.
- Rule ordering
Visual Query rules are applied sequentially, meaning that if conflicting rules are added, they are handled in order, allowing rules that are later in the file to overwrite earlier rules. This allows you to refine your conditions, for example:
<Deny/> <!-- Allow 'Person' searches to include conditions for 'Date of birth' and 'Gender' that are exactly or between a specified range --> <Allow ItemTypeId="ET5" PropertyTypeIds="PER9, PER15" Operators="EQUAL_TO, BETWEEN"/>
Using these rules, searches for people with specified dates of birth or genders are permitted, but all other Visual Query conditions are prevented from running.