部署全文索引
Nebula Graph的全文索引是基于Elasticsearch实现,这意味着用户可以使用Elasticsearch全文查询语言来检索想要的内容。全文索引由内置的进程管理,当listener集群和Elasticsearch集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。
注意事项
使用全文索引前,请确认已经了解全文索引的使用限制。
部署Elasticsearch集群
部署Elasticsearch集群请参见Kubernetes安装Elasticsearch或单机安装Elasticsearch。
当Elasticsearch集群启动时,请添加Nebula Graph全文索引的模板文件。关于索引模板的说明请参见Elasticsearch官方文档。
以下面的模板为例:
{
"template": "nebula*",
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 1
}
},
"mappings": {
"properties" : {
"tag_id" : { "type" : "long" },
"column_id" : { "type" : "text" },
"value" :{ "type" : "keyword"}
}
}
}
请确保指定的以下字段严格符合上述模板格式:
"template": "nebula*"
"tag_id" : { "type" : "long" },
"column_id" : { "type" : "text" },
"value" :{ "type" : "keyword"}
示例命令:
curl -H "Content-Type: application/json; charset=utf-8" -XPUT http://127.0.0.1:9200/_template/nebula_index_template -d '
{
"template": "nebula*",
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 1
}
},
"mappings": {
"properties" : {
"tag_id" : { "type" : "long" },
"column_id" : { "type" : "text" },
"value" :{ "type" : "keyword"}
}
}
}'
用户可以配置Elasticsearch来满足业务需求,如果需要定制Elasticsearch,请参见Elasticsearch官方文档。
登录文本搜索客户端
部署Elasticsearch集群之后,可以使用SIGN IN
语句登录Elasticsearch客户端。必须使用Elasticsearch配置文件中的IP地址和端口才能正常连接,同时登录多个客户端,请在多个elastic_ip:port
之间用英文逗号(,)分隔。
语法
SIGN IN TEXT SERVICE [(<elastic_ip:port> [,<username>, <password>]), (<elastic_ip:port>), ...];
示例
nebula> SIGN IN TEXT SERVICE (127.0.0.1:9200);
显示文本搜索客户端
SHOW TEXT SEARCH CLIENTS
语句可以列出文本搜索客户端。
语法
SHOW TEXT SEARCH CLIENTS;
示例
nebula> SHOW TEXT SEARCH CLIENTS;
+-------------+------+
| Host | Port |
+-------------+------+
| "127.0.0.1" | 9200 |
+-------------+------+
| "127.0.0.1" | 9200 |
+-------------+------+
| "127.0.0.1" | 9200 |
+-------------+------+
退出文本搜索客户端
SIGN OUT TEXT SERVICE
语句可以退出所有文本搜索客户端。
语法
SIGN OUT TEXT SERVICE;
示例
nebula> SIGN OUT TEXT SERVICE;