Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Blaze (v4)

Standalone

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

Leave it blank if an HDC service is not required.

Please complete this required field.

Leave it blank if an HDC service is not required.

Please complete this required field.

Please complete this required field.

Mac addresses of all servers, separated by line break or comma.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Maximum Shard Services
Maximum Total Cores for Shard Service
Maximum HDC Services
Maximum Total Cores for HDC Service
Applied Validity Period(days)
Effective Date
Expired Date
Mac Address
Reason for Application
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v5.0
Search
    English
    v5.0

      Index

      Overview

      Indexing, or property indexing, is a technique used in Ultipa to speed up query performance by creating indexes on specific properties of nodes and edges. This allows the database to quickly locate and retrieve data based on indexed properties. Indexes are particularly beneficial for large datasets, as they optimize the filtering of specific property values without needing to scan the entire graph.

      Index Types

      Ultipa supports single index on one property and composite index which involve multiple properties from a schema.

      Showing Indexes

      To retrieve node indexes in the current graph:

      SHOW NODE INDEX
      

      To retrieve edge indexes in the current graph:

      SHOW EDGE INDEX
      

      The information about indexes is organized into the _nodeIndex or _edgeIndex table with the following fields:

      Field
      Description
      id Index id.
      name Index name.
      properties The properties involved in the index.
      schema The schema of the properties involved in the index.
      status Index status, which can be DONE or CREATING.

      Creating an Index

      You can create an index using the CREATE INDEX statement. Note that each property can only have one single index. The index creation runs as a job, you may run SHOW JOB <id?> afterward to verify the success of the creation.

      System properties in Ultipa are inherently optimized for query performance and have built-in efficiencies. They do not support indexing.

      <create index statement> ::=
        "CREATE INDEX" <index name> "ON" < "NODE" | "EDGE" > <schema name>
        "(" <property index item> [ { "," <property index item> }... ] ")"
      
      <property index item> ::=
        <property name> [ "(" <bytes> ")" ]
      

      Details

      • The <index name> must be unique among nodes and among edges, but a node index and an edge index may share the same name.
      • For a single index, specifies one <property index item>; for a composite index, lists multiple <property index item>.
      • If a specified property is of type string or text, you can specify the maximum number of bytes [1] (count from left) to be indexed for each value. If omitted, the default indexing length is 1024 bytes for string and 2048 bytes for text. Learn more about how this byte-length limitation affects queries.

      [1] In standard English text, most encodings (such as ASCII or UTF-8) use 1 byte per character. However, for non-English characters, the byte size may vary—for example, one Chinese character typically occupies 3 bytes.

      To create single index named cBalance for the property balance of card nodes:

      CREATE INDEX cBalance ON NODE card (balance)
      

      To create single index named name for the property name (string type) of card nodes, restricting the indexed byte-length as 10:

      CREATE INDEX name ON NODE card (name(10))
      

      To create composite index named transAmountNotes for properties amount and notes (text type, restricting the indexed byte-lengt as 10) for transfer edges:

      CREATE INDEX transAmountNotes ON EDGE transfer (amount, notes(10))
      

      Dropping an Index

      You can drop an index using the DROP NODE INDEX or DROP EDGE INDEX statement. Dropping an index does not affect the actual property values stored in shards.

      A property with an index cannot be dropped until the index is deleted.

      To drop the node index cBalance:

      DROP NODE INDEX cBalance
      

      To drop the edge index transAmountNotes:

      DROP EDGE INDEX transAmountNotes
      

      Using Indexes

      Indexes are automatically applied when the corresponding properties are used in query filters, without the need for explicit declarations.

      Leftmost Prefix Rule

      The order of properties in a composite index matters — queries that match the leftmost properties of the index (i.e., the first property or the first few properties in the defined order) will benefit from the index.

      For example:

      CREATE INDEX name_age ON NODE user (name(10),age)
      
      • MATCH (u:user WHERE u.name = "Kavi" AND u.age > 20) uses the index.
      • MATCH (u:user WHERE u.name = "Kavi") uses the index.
      • MATCH (u:user WHERE u.age > 20) doesn't use the index.
      • MATCH (u:user WHERE u.name = "Kavi" AND u.age > 20 AND u.grade = 7) uses the index, meanwhile it contains the filtering for the grade property which lacks an index.

      String Byte-Length Limitation

      When using indexes with string or text properties, ensure the byte-length of the string used in the filter does not exceed the defined limit when creating the index.

      For example, an index Username is created for the name property of the user nodes with a 8-byte limitation:

      CREATE INDEX Username ON NODE user (name(8))
      

      The query below won't utilize the Username index as the specified string Aventurine exceeds the 8-byte limit:

      MATCH (n:user {name: "Aventurine"})
      RETURN n
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      Privacy Policy.
      Please agree to continue.