说明
该功能不再维护更新,建议不要再使用该功能。业务方保持以前使用ES的方式不变,有全文检索的需求直接访问ES即可。
图数据库GDB深度融合Elasticsearch(ES),使得GDB具备了分词检索、模糊匹配、正则表达式查询的能力,且GDB内核集成了数据增量同步至ES中的服务,保证GDB与ES数据的强一致性。本文介绍使用GDB+ES的全文索引服务的方法。
背景介绍
如果您想使用GDB+ES的全文索引服务,建议您购买新的GDB实例,因为目前GDB数据仅支持增量同步至ES中。
当您已经在使用GDB实例,也想使用GDB+ES的全文索引服务,您需要进行以下步骤:
将您的GDB实例升级到最新的版本。
需要将您GDB中数据删除。
购买ES服务并在GDB中注册ES信息。
重新导入数据。
当然,您如果只想对部分数据进行全文索引,那么您也可以只删除部分数据,然后重新导入需要全文索引的数据即可。但是,需要注意的是,GDB数据增量同步至ES对这种形式的支持还不是很友好,建议您购买新的实例。
GDB全文搜索的数据模型
点模型
{
"id": "Vertex Id",
"label": [List of Labels type],
"type": "vertex/edge"
"predicates": {
"Property name": [
{
"value": "Property Value1",
},
{
"value": "Property Value2"
}
]
}
}
id
:文档的实体唯一ID。label
:点或边的一个或多个标签。type
:用于指定当前文档表示点或边。predicates
:对于Gremlin,存储点或边的属性键值,比如name字段在ES中存储为predicates.name.value的形式。value
:存储属性值,支持GDB中的set属性。
边模型
{
"id": "Vertex Id/Edge Id",
"label": [List of Labels type],
"type": "vertex/edge"
"toId": "入边id",
"toLabel": "入边label",
"fromId": "出边id",
"fromLabel":"出边label",
"predicates": {
"Property name": [
{
"value": "Property Value",
},
{
"value": "Property Value2",
}
]
}
}
GDB+ES使用流程
查看前提条件,购买GDB与ES实例。
查看GDB中配置ES信息,将ES实例信息注入GDB。
查看GDB+ES的DSL编写范例,选择合适的查询方式进行查询。
文档内容是否对您有帮助?