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 Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
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

      Full-text Index

      Overview

      A full-text index is a type of index specialized for efficient searching for string or text properties, especially in large text fields like descriptions, comments, or articles.

      Full-text indexes work by breaking down the text into smaller segments called tokens. When a query is performed, the search engine matches specified keywords against these tokens instead of the original full text, allowing for faster retrieval of relevant results. This approach enables keyword matching and partial matches.

      Showing Full-text Indexes

      To retrieve information about full-text indexes in the current graphset:

      // Shows all full-text indexes
      show().fulltext()
      
      // Show all node full-text indexes
      show().node_fulltext()
      
      // Show all edge full-text indexes
      show().edge_fulltext()
      

      The information about full-text indexes is organized into tables _nodeFulltext and _edgeFulltext. Each table includes fields that provide essential details about each full-text index:

      Field
      Description
      name The name assigned to the full-text index.
      properties The property of the full-text index.
      schema The schema of the full-text index.
      status The current state of the full-text index, which can be DONE or CREATING.

      Creating a Full-text Index

      You can create a node or edge full-text index using the create().node_fulltext() or create().edge_fulltext() statement. Note that each property can only have one full-text index. The full-text 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. However, they do not support additional indexing.

      // Creates a node full-text index
      create().node_fulltext(@<schema>.<property>, "<fulltextName>")
      
      // Creates an edge full-text index
      create().edge_fulltext(@<schema>.<property>, "<fulltextName>")
      
      Method Param Description
      node_fulltext() or edge_fulltext() @<schema>.<property> Specifies the string or text property and its schema.
      <fulltextName> The name of the full-text index. Naming conventions are:
      • 2 to 64 characters.
      • Begins with a letter.
      • Allowed characters: letters (A-Z, a-z), numbers (0-9) and underscores (_).
      Names must be unique among nodes and among edges, but a node full-text index and an edge full-text index may share the same name.

      To create a full-text index prodDesc for node property @product.description:

      create().node_fulltext(@product.description, "prodDesc")
      

      To create a full-text index review for edge property @review.content:

      create().edge_fulltext(@review.content, "review")
      

      Dropping a Full-text Index

      You can drop a node or edge full-text index using the drop().node_fulltext() or drop().edge_fulltext() statement. Dropping a full-text index does not affect the actual property values stored in shards. However, deleting a property will automatically remove its associated full-text index.

      To drop the node full-text index proDesc:

      drop().node_fulltext("proDesc")
      

      To drop the edge full-text index review:

      drop().edge_fulltext("review")
      

      Using Full-text Indexes

      To use a full-text index in filters, use the syntax {~<fulltextName> contains "<keyword1> <keyword2> ..."}:

      • The ~ symbol marks the full-text index.
      • The operator contains checks if the segmented tokens in the full-text index include all the specified keywords.
      • Multiple keywords should be separated by spaces. If a double quotation mark appears in a keyword, prefix it with a backslash (\).

      There are two search modes:

      • Precise search matches exact tokens to keywords.
      • Fuzzy search occurs when a keyword ends with an asterisk (*), matching tokens that begin with the keyword.

      To find nodes using the full-text index prodDesc where tokens include both "graph" and "database":

      find().nodes({~prodDesc contains "graph database"}) as n
      return n
      

      To find nodes using the full-text index prodDesc where tokens include "graph" or "database":

      find().nodes({~prodDesc contains "graph" || ~prodDesc contains "database"}) as n
      return n
      

      To find nodes using the full-text index prodDesc where tokens include "graph" and start with "ult":

      find().nodes({~prodDesc contains "graph ult*"}) as n
      return n
      

      To find paths within 5 steps between nodes where the full-text index companyName starts with "Sequoia" and nodes where it starts with "Hillhouse":

      ab().src({~companyName contains "Sequoia*"}).dest({~companyName contains "Hillhouse*"}).depth(:5) as p
      return p
      

      Note that in Path Template and K-Hop Template queries, full-text indexes only apply to the first node template. For example, the query below is not supported:

      n().e().n({~name contains "Good"}) as p
      return p
      

      You can revise this query as follows:

      find.nodes({~name contains "Good"}) as dest
      n().e().n({_id == dest._id}) as p
      return p
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写