日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

HugeGraph 图数据库索引介绍 - 范围索引,全文索引

發布時間:2024/8/23 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HugeGraph 图数据库索引介绍 - 范围索引,全文索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

HugeGraph 索引介紹

二級索引

組合索引

范圍索引

全文索引

?


HugeGraph 索引介紹

二級索引

創建schema和添加數據

schema.propertyKey("name").asText().ifNotExist().create();schema.propertyKey("uid").asLong().ifNotExist().create();schema.propertyKey("city").asText().ifNotExist().create();schema.propertyKey("mid").asText().ifNotExist().create();schema.propertyKey("url").asText().ifNotExist().create();schema.propertyKey("date").asText().ifNotExist().create();schema.vertexLabel("article").properties("name", "uid", "city","mid","url").useCustomizeStringId().ifNotExist().create(); schema.indexLabel("articleByNameSecondary").onV("article").by("name").secondary().ifNotExist().create();graph.addVertex(T.label, "article",T.id,"id7", "mid", "lakjdflkjalskdjfl", "name", "北京三聯WiFi熟練度附近", "uid", 1234567897,"city","未知","url","http://test.com//IodUhh2bV");graph.addVertex(T.label, "article",T.id,"id2", "mid", "lakjdflkjalskdjfl", "name", "北京三聯法律文件而來反饋", "uid", 1234567891,"city","未知","url","http://test.com//IodUhh2bV");graph.addVertex(T.label, "article",T.id,"id3", "mid", "lakjdflkjalskdjfl", "name", "深圳廣州WiFi熟練度附近", "uid", 1234567892,"city","未知","url","http://test.com//IodUhh2bV");graph.addVertex(T.label, "article",T.id,"id4", "mid", "lakjdflkjalskdjfl", "name", "深圳WiFi熟練度附近", "uid", 1234567893,"city","未知","url","http://test.com//IodUhh2bV");graph.addVertex(T.label, "article",T.id,"id5", "mid", "lakjdflkjalskdjfl", "name", "廣州測試", "uid", 1234567894,"city","未知","url","http://test.com//IodUhh2bV");graph.addVertex(T.label, "article",T.id,"id6", "mid", "lakjdflkjalskdjfl", "name", "數據", "uid", 1234567895,"city","未知","url","http://test.com//IodUhh2bV");

根據name查詢,該方法只能全不值匹配,不能模糊匹配

模糊匹配使用該方法,不推薦這么使用,filter過濾數據,當數據量很大的時候性能會下降

g.V().hasLabel("article").filter{it.get().property("name").value().contains("北京")}; 或者使用下面這個方法進行正則匹配 g.V().hasLabel("article").filter{it.get().property("name").value().matches("北京(.*)")};

?可以對結果進行過濾

組合索引

待補充

范圍索引

待補充

全文索引

創建索引標簽

設置定點article的name字段為全文索引(可以模糊檢索)

schema.indexLabel("articleByNameSearch").onV("article").by("name").search().ifNotExist().create();

其他schema設置

schema.propertyKey("name").asText().ifNotExist().create();schema.propertyKey("uid").asLong().ifNotExist().create();schema.propertyKey("city").asText().ifNotExist().create();schema.propertyKey("mid").asText().ifNotExist().create();schema.propertyKey("url").asText().ifNotExist().create();schema.propertyKey("date").asText().ifNotExist().create();schema.vertexLabel("article").properties("name", "uid", "city","mid","url")// .primaryKeys("name").useCustomizeStringId().ifNotExist().create();

?添加數據

graph.addVertex(T.label, "article",T.id,"id7", "mid", "lakjdflkjalskdjfl", "name", "北京三聯WiFi熟練度附近", "uid", 1234567897,"city","未知","url","http://test.com//IodUhh2bV"); graph.addVertex(T.label, "article",T.id,"id2", "mid", "lakjdflkjalskdjfl", "name", "北京三聯法律文件而來反饋", "uid", 1234567891,"city","未知","url","http://test.com//IodUhh2bV"); graph.addVertex(T.label, "article",T.id,"id3", "mid", "lakjdflkjalskdjfl", "name", "深圳廣州WiFi熟練度附近", "uid", 1234567892,"city","未知","url","http://test.com//IodUhh2bV"); graph.addVertex(T.label, "article",T.id,"id4", "mid", "lakjdflkjalskdjfl", "name", "深圳WiFi熟練度附近", "uid", 1234567893,"city","未知","url","http://test.com//IodUhh2bV"); graph.addVertex(T.label, "article",T.id,"id5", "mid", "lakjdflkjalskdjfl", "name", "廣州測試", "uid", 1234567894,"city","未知","url","http://test.com//IodUhh2bV"); graph.addVertex(T.label, "article",T.id,"id6", "mid", "lakjdflkjalskdjfl", "name", "數據", "uid", 1234567895,"city","未知","url","http://test.com//IodUhh2bV");

?數據添加成功,查看數據

idlabelproperties
id2article{"name":"北京三聯法律文件而來反饋","uid":1234567891,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id3article{"name":"深圳廣州WiFi熟練度附近","uid":1234567892,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id4article{"name":"深圳WiFi熟練度附近","uid":1234567893,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id5article{"name":"廣州測試","uid":1234567894,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id6article{"name":"數據","uid":1234567895,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id7article{"name":"北京三聯WiFi熟練度附近","uid":1234567897,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}

查詢?

添加索引的數據會進行分詞,我們在HugeGraph中可以看到配置文件?hugegraph.properties 中有配置分詞項,這里使用jieba分詞

search.text_analyzer=jieba search.text_analyzer_mode=INDEX

執行查詢

g.V().hasLabel("article").has("name", Text.contains("熟練度"))

查詢結果:?

idlabelproperties
id3article{"name":"深圳廣州WiFi熟練度附近","uid":1234567892,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id4article{"name":"深圳WiFi熟練度附近","uid":1234567893,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}
id7article{"name":"北京三聯WiFi熟練度附近","uid":1234567897,"city":"未知","mid":"lakjdflkjalskdjfl","url":"http://test.com//IodUhh2bV"}

我們可以看出可以模糊查詢了

?我們再查詢“熟練”,發現數據也可以出來

當查詢“熟”一個字的時候發現沒有數據,搜索“練度”也沒有數據,原因是索引將數據進行分詞,將分詞后的每個詞進行索引,如果你搜索的詞在分詞的時候沒有分詞出來,最終搜索的結果就會搜索不到,“熟”,“練度”這兩個字(詞),在JieBa分詞中沒有,所以搜索不到。

所以查詢使用使用Text.contains(),也并非我們開發中判斷字符串中是否包含該字符串的意思。

?

?

總結

以上是生活随笔為你收集整理的HugeGraph 图数据库索引介绍 - 范围索引,全文索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。