安装遇到的问题
作为服务器时stutio的设置
studio.server.port=8088
studio.server.host=0.0.0.0 // 设置为0.0.0.0在外部可以正常访问
graph.server.host=127.0.0.1
graph.server.port=8080
graph.name=hugegraph //hugegraph不变,不需要与启动服务器建立的图名称(存储文件夹名)一致
load 文件报错
事先已建立scheme,应该重设图名,然后初始化存储./bin/init-store.sh
,进而重启服务
索引
IndexLabel
IndexLabel 用来定义索引类型,描述索引的约束信息,主要是为了方便查询。
允许定义的约束信息包括:name、baseType、baseValue、indexFeilds、indexType
- name
属性的名字,用来区分不同的 IndexLabel,不允许有同名的属性;indexLabel(String name)
- baseType
表示要为 VertexLabel 还是 EdgeLabel 建立索引, 与下面的 baseValue 配合使用; - baseValue
指定要建立索引的 VertexLabel 或 EdgeLabel 的名称onV(String baseValue)
- indexFeilds
要在哪些属性上建立索引,可以是为多列建立联合索引;by(String... fields)
- indexType
建立的索引类型,目前支持五种,即 Secondary、Range、Search、Shard 和 Unique。-
Secondary
支持精确匹配的二级索引,允许建立联合索引,联合索引支持索引前缀搜索
单个属性,支持相等查询,比如:person顶点的city属性的二级索引,可以用g.V().has(“city”, “北京”)查询"city属性值是北京"的全部顶点
联合索引,支持前缀查询和相等查询,比如:person顶点的city和street属性的联合索引,可以用g.V().has (“city”, “北京”).has(‘street’, ‘中关村街道’)查询"city属性值是北京且street属性值是中关村"的全部顶点,或者g.V() .has(“city”, “北京”)查询"city属性值是北京"的全部顶点
secondary index的查询都是基于"是"或者"相等"的查询条件,不支持"部分匹配" -
Range 支持数值类型的范围查询
必须是单个数字或者日期属性,比如:person顶点的age属性的范围索引,可以用g.V().has(“age”, P.gt(18))查询"age属性值大于18"的顶点。除了P.gt()以外,还支持P.gte(), P.lte(), P.lt(), P.eq(), P.between(), P.inside()和P.outside()等 -
Search 支持全文检索的索引
必须是单个文本属性,比如:person顶点的address属性的全文索引,可以用g.V().has(“address”, Text.contains(‘大厦’)查询"address属性中包含厦"的全部顶点
search index的查询是基于"是"或者"包含"的查询条件
-
- Shard
支持前缀匹配 + 数字范围查询的索引;
N个属性的分片索引,支持前缀相等情况下的范围查询,比如:person顶点的city和age属性的分片索引,可以用g.V().has (“city”, “北京”).has(“age”, P.between(18, 30))查询"city属性是北京且年龄大于等于18小于30"的全部顶点
shard index N个属性全是文本属性时,等价于secondary index
shard index只有单个数字或者日期属性时,等价于range index
hard index可以有任意数字或者日期属性,但是查询时最多只能提供一个范围查找条件,且该范围查找条件的属性的前缀属性都是相等查询条件- Unique
支持属性值唯一性约束,即可以限定属性的值不重复,允许联合索引,但不支持查询
单个或者多个属性的唯一性索引,不可用来查询,只可对属性的值进行限定,当出现重复值时将报错
接口
- Unique
secondary()
range()
search()
shard()
unique()
例子
- 创建IndexLabel
schema.indexLabel("personByAge").onV("person").by("age").range().ifNotExist().create();
schema.indexLabel("createdByDate").onE("created").by("date").secondary().ifNotExist().create();
schema.indexLabel("personByLived").onE("person").by("lived").search().ifNotExist().create();
schema.indexLabel("personByCityAndAge").onV("person").by("city", "age").shard().ifNotExist().create();
schema.indexLabel("personById").onV("person").by("id").unique().ifNotExist().create();
- 删除IndexLabel
schema.indexLabel("personByAge").remove()
- 查询IndexLabel
// 获取IndexLabel对象
schema.getIndexLabel(“personByAge”)
// 获取property key属性
schema.getIndexLabel("personByAge").baseType()
schema.getIndexLabel("personByAge").baseValue()
schema.getIndexLabel("personByAge").indexFields()
schema.getIndexLabel("personByAge").indexType()
schema.getIndexLabel("personByAge").name()
ref:
-
https://blog.csdn.net/gobitan/article/details/86974625
-
https://segmentfault.com/a/1190000018046191
-
分别下载hugegraph-studio-0.8.0 和hugegraph-0.8.0
-
对hugegraph:首先执行 ./bin/init-store.sh
然后执行 ./.bin/start-hugegraph.sh -
对于hugegraph-studio:执行 ./bin/hugegraph-studio.sh
注意:
对于mac, 确定使用时保证可用物理内存>512M
来源:CSDN
作者:chencas
链接:https://blog.csdn.net/chencas/article/details/103975919