部署全文索引Graph
NebulaGraph 的全文索引是基于 Graph 实现,这意味着用户可以使用 Elasticsearch 全文查询语言来检索想要的内容。全文索引由内置的进程管理,当 listener 集群和 Elasticsearch 集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。
注意事项Graph
使用全文索引前,请确认已经了解全文索引的Graph。
部署 Elasticsearch 集群Graph
部署 Elasticsearch 集群请参见 Graph。
当 Elasticsearch 集群启动时,请添加 NebulaGraph 全文索引的模板文件。关于索引模板的说明请参见 Graph。
以下面的模板为例(针对ES 7.0及以上版本):
{
"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"}
Caution
创建全文索引时,索引名称需要以nebula
开头。
示例命令:
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,请参见 Graph。
登录文本搜索客户端Graph
部署 Elasticsearch 集群之后,可以使用SIGN IN
语句登录 Elasticsearch 客户端。必须使用 Elasticsearch 配置文件中的 IP 地址和端口才能正常连接,同时登录多个客户端,请在多个elastic_ip:port
之间用英文逗号(,)分隔。
语法Graph
SIGN IN TEXT SERVICE (<elastic_ip:port>, {HTTP | HTTPS} [,"<username>", "<password>"]) [, (<elastic_ip:port>, ...)];
示例Graph
nebula> SIGN IN TEXT SERVICE (127.0.0.1:9200, HTTP);
Note
Elasticsearch 默认没有用户名和密码,如果设置了用户名和密码,请在SIGN IN
语句中指定。
显示文本搜索客户端Graph
SHOW TEXT SEARCH CLIENTS
语句可以列出文本搜索客户端。
语法Graph
SHOW TEXT SEARCH CLIENTS;
示例Graph
nebula> SHOW TEXT SEARCH CLIENTS;
+-------------+------+
| Host | Port |
+-------------+------+
| "127.0.0.1" | 9200 |
+-------------+------+
退出文本搜索客户端Graph
SIGN OUT TEXT SERVICE
语句可以退出所有文本搜索客户端。
语法Graph
SIGN OUT TEXT SERVICE;
示例Graph
nebula> SIGN OUT TEXT SERVICE;
最后更新:
March 1, 2022