部署全文索引

Nebula Graph的全文索引是基于Elasticsearch实现,这意味着您可以使用Elasticsearch全文查询语言来检索您想要的内容。全文索引由内置的进程管理,当listener集群和Elasticsearch集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。

注意事项

使用全文索引前,请确认您已经了解全文索引的使用限制

部署Elasticsearch集群

部署Elasticsearch集群请参见Elasticsearch官方文档

当Elasticsearch集群启动时,请添加Nebula Graph全文索引的模板文件。以下面的模板为例:

  1. {
  2. "template": "nebula*",
  3. "settings": {
  4. "index": {
  5. "number_of_shards": 3,
  6. "number_of_replicas": 1
  7. }
  8. },
  9. "mappings": {
  10. "properties" : {
  11. "tag_id" : { "type" : "long" },
  12. "column_id" : { "type" : "text" },
  13. "value" :{ "type" : "keyword"}
  14. }
  15. }
  16. }

请确保您指定的以下字段严格符合上述模板格式:

  1. "template": "nebula*"
  2. "tag_id" : { "type" : "long" },
  3. "column_id" : { "type" : "text" },
  4. "value" :{ "type" : "keyword"}

您可以配置Elasticsearch来满足您的业务需求,如果需要定制Elasticsearch,请参见Elasticsearch官方文档

登录文本搜索客户端

部署Elasticsearch集群之后,可以使用SIGN IN语句登录Elasticsearch客户端。您必须使用Elasticsearch配置文件中的IP地址和端口才能正常连接,同时登录多个客户端,请在多个elastic_ip:port之间用英文逗号(,)分隔。

语法

  1. SIGN IN TEXT SERVICE [(<elastic_ip:port> [,<username>, <password>]), (<elastic_ip:port>), ...];

示例

  1. nebula> SIGN IN TEXT SERVICE (127.0.0.1:9200);

说明:Elasticsearch默认没有用户名和密码,如果您设置了用户名和密码,请在SIGN IN语句中指定。

显示文本搜索客户端

SHOW TEXT SEARCH CLIENTS语句可以列出文本搜索客户端。

语法

  1. SHOW TEXT SEARCH CLIENTS;

示例

  1. nebula> SHOW TEXT SEARCH CLIENTS;
  2. +-------------+------+
  3. | Host | Port |
  4. +-------------+------+
  5. | "127.0.0.1" | 9200 |
  6. +-------------+------+
  7. | "127.0.0.1" | 9200 |
  8. +-------------+------+
  9. | "127.0.0.1" | 9200 |
  10. +-------------+------+

退出文本搜索客户端

SIGN OUT TEXT SERVICE语句可以退出所有文本搜索客户端。

语法

  1. SIGN OUT TEXT SERVICE;

示例

  1. nebula> SIGN OUT TEXT SERVICE;