Indexes
This section describes the SDL declarations pertaining to indexes.
Example
Declare an index for a “User” based on the “name” property:
type User {
required name: str;
address: str;
multi friends: User;
# define an index for User based on name
index on (.name) {
annotation title := 'User name index';
}
}
Syntax
Define a new index corresponding to the more explicit DDL commands.
index on ( index-expr )
[ except ( except-expr ) ]
[ "{" annotation-declarations "}" ] ;
Description
This declaration defines a new index with the following options:
- on ( index-expr )
-
The specific expression for which the index is made.
The expression must be Immutable but may refer to the indexed object’s properties and links.
Note also that
<index-expr>
itself has to be parenthesized. - except ( exception-expr )
-
- An optional expression defining a condition to create exceptions
-
to the index. If
<exception-expr>
evaluates totrue
, the object is omitted from the index. If it evaluates tofalse
or{}
, it appears in the index.
The valid SDL sub-declarations are listed below:
- annotation-declarations
-
Set index annotation to a given value.