到目前为止,我想删除现有索引并按照文档中的步骤进行操作。我现在没有配置单独的索引后端。但是,当我到达必须等待索引状态更改的步骤时,m.awaitGraphIndexStatus它会永远等待更改并超时并出现以下错误:
GraphIndexStatusReport[success=false, indexName='usernameComposite', targetStatus=DISABLED, notConverged={username=INSTALLED}, converged={}, elapsed=PT1M0.092S]
Run Code Online (Sandbox Code Playgroud)
当我尝试创建一个新的时,也会发生同样的情况。任何想法可能导致这种情况?
我正在使用以下代码片段创建 indizes:
graph.tx().rollback()
mgmt = graph.openManagement()
name = mgmt.getPropertyKey('username')
mgmt.buildIndex('username-composite', Vertex.class).addKey(name).unique().buildCompositeIndex()
mgmt.commit()
mgmt.awaitGraphIndexStatus(graph, 'username-composite').call()
Run Code Online (Sandbox Code Playgroud) 我有一个带有几个索引的图表.它们是两个具有标签限制的综合指数.(两者在不同的属性/标签上完全相同).一个肯定似乎工作,但另一个没有.我已完成以下配置文件()以加倍检查:
一个叫做KeyOnNode:属性uid和标签node:
gremlin> g.V().hasLabel("node").has("uid", "xxxxxxxx").profile().cap(...)
==>Traversal Metrics
Step Count Traversers Time (ms) % Dur
=============================================================================================================
TitanGraphStep([~label.eq(node), uid.eq(dammit_... 1 1 2.565 96.84
optimization 1.383
backend-query 1 0.231
SideEffectCapStep([~metrics]) 1 1 0.083 3.16
>TOTAL - - 2.648 -
Run Code Online (Sandbox Code Playgroud)
以上是完全可以接受的,效果很好.我假设魔术线是backend-query.
另一种叫做NameOnSuperNode:属性name和标签supernode:
gremlin> g.V().hasLabel("supernode").has("name", "xxxxxxxx").profile().cap(...)
==>Traversal Metrics
Step Count Traversers Time (ms) % Dur
=============================================================================================================
TitanGraphStep([~label.eq(supernode), name.eq(n... 1 1 5763.163 100.00
optimization 2.261
scan 0.000
SideEffectCapStep([~metrics]) 1 1 0.073 0.00 …Run Code Online (Sandbox Code Playgroud) 在 Tinkerpop3 valueMap 返回一个数组时,如何获得真正的键值对(没有数组)?
gremlin> Gremlin.version()
==>3.0.1-incubating
:> def trav = g.V().hasLabel('Group'); trav.valueMap()
==>{joinTime=[2016-12-05T22:27:01.088Z], groupId=[9de5-45cf-b40d-e357b40e87b1], mCanInvite=[true]}
:> def trav = g.V().hasLabel('Group'); trav.local(properties().group().by(key()).by(value()))
==>{joinTime={2016-12-05T22:27:01.088Z=1}, groupId={9de5-45cf-b40d-e357b40e87b1=1}, mCanInvite={true=1}
Run Code Online (Sandbox Code Playgroud) 我们有顶点来存储各种作业及其类型,并算作属性。我必须按状态和数量进行分组。我尝试了以下查询,该查询适用于一个属性(receiveCount)
g.V().hasLabel("Jobs").has("Type",within("A","B","C")).group().by("Type").by(fold().match(__.as("p").unfold().values("receiveCount").sum().as("totalRec")).select("totalRec")).next()
Run Code Online (Sandbox Code Playgroud)
我想提供 10 个以上的属性,例如 successCount、FailedCount 等。有没有更好的方法来提供呢?
有没有一种简单的方法来替换或合并顶点并保留/合并现有边?或者只是手动复制顶点的所有属性并重新创建现有的边和所有(元)属性,然后删除多余的顶点?
我有一个非常简单的示例图,我试图对其进行深度优先查询。假设图的边看起来像这样
A->B
A->C
B->D
B->E
C->F
C->G
Run Code Online (Sandbox Code Playgroud)
从 A 开始的深度优先搜索应该返回
A-B-D-E-C-F-G
Run Code Online (Sandbox Code Playgroud)
但如果我能得到下面的订单那就更好了
D-E-B-A-F-G-C-A
Run Code Online (Sandbox Code Playgroud)
如何创建将输出此订单的 Gremlin 查询?如果我做这样的事情
g.V('A').repeat(outE().inV()).emit()
Run Code Online (Sandbox Code Playgroud)
我得到的顺序是 A、B、C、D、E、F、G,即广度优先。我不知道如何获得上面我想要的订单。
大多数数据库为用户提供了列出正在运行的查询的机制,并在需要时取消它们 这对于终止花费大量时间的查询特别有用.例如,在MySQL中你会做这样的事情:
mysql>show processlist;
mysql> kill <pid>;
Run Code Online (Sandbox Code Playgroud)
我怎样才能在gremlin服务器上做类似的事情?到目前为止,唯一可用的旋钮是scriptEvaluationTimeoutyaml配置,它允许您在超时时终止请求.我对能够列出所有正在运行的查询的API以及可以让我按ID删除查询的API感兴趣.如果不支持,tinkerpop是否有计划在较新版本中支持它?就像是:
g.query()
g.query('123')
g.query('123').cancel()
Run Code Online (Sandbox Code Playgroud) 我正在将 AWS Neptune 与 gremlin 一起使用,并且我想在一个查询中获取具有顶点所有属性的顶点的 id。我怎样才能做到这一点?
我试过了
g.V().hasLabel('file').valueMap(true)
Run Code Online (Sandbox Code Playgroud)
但输出是:
{ "fileSize": [ "9170" ], "Gremlin.Net.Process.Traversal.T": "f1fce58306f85ca7050503160640d735c9919c8fc85881d65de80bfe31b5ca24", "mimeType": [ "text/html" ] }
Run Code Online (Sandbox Code Playgroud)
没有标签,也没有 ID。问题在于
project('id','label',' fileSize', 'mimeType', 'malwareSource').
by(id).
by(label).
by('fileSize').
by('mimeType').
by('malwareSource')
Run Code Online (Sandbox Code Playgroud)
是属性malwareSource 有时是文件顶点的一部分,有时不是。因此,如果没有malwareSource 属性,则会引发异常。
我正在寻找使用Scylla或Cassandra作为后端的Graph数据库,然后将web api暴露为GraphQl.
你能帮我验证我是否有正确的跟随堆栈:
我正在计划SWI Prolog程序(语义自然语言解析器),它具有庞大而动态的事实集(具有大约30.000个条目的词典).是否可以将这些事实存储在外部数据库中.由于其他要求,我正在考虑Apache TinkerPop/JanusGraph/Cassandra作为我的数据库,但我也对SQL/JDBC/ODBC数据库支持感到满意.
tinkerpop ×10
gremlin ×8
tinkerpop3 ×4
titan ×2
cassandra ×1
database ×1
graph ×1
graphql ×1
janusgraph ×1
prolog ×1
scylla ×1
swi-prolog ×1