說明
該功能不再維護更新,建議不要再使用該功能。業務方保持以前使用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編寫范例,選擇合適的查詢方式進行查詢。
文檔內容是否對您有幫助?