问题标签 [titan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
802 浏览

indexing - Creating Titan indexed types for elasticsearch

I am having problems getting the elastic search indexes to work correctly with Titan Server. I currently have a local Titan/Cassandra setup using Titan Server 0.4.0 with elastic search enabled. I have a test graph 'bg' with the following properties:

  • Vertices have two properties, "type" and "value".
  • Edges have a number of other properties with names like "timestamp", "length" and so on.

I am running titan.sh with the rexster-cassandra-es.xml config, and my configuration looks like this:

This configuration is the same in the bg config in Rexter and the groovy script that loads the data.

When I load up Rexster client and type in g = rexster.getGraph("bg"), I can perform an exact search using g.V.has("type","ip_address") and get the correct vertices back. However when I run the query:

I get the error:

I think this is something to do with the type "value" not being indexed. What I would like to do is make all vertex and edge attributes indexable so that I can use any of the string matching functions on them as necessary. I have already tried making an indexed key using the command

but to be honest I have no idea how this works. Can anyone help point me in the right direction with this? I am completely unfamiliar with elastic search and Titan type definitions.

Thanks,

Adam

0 投票
0 回答
758 浏览

graph - 使用 Gremlin 查询 Titan 顶点属性失败

我有一个使用 BDB 后端加载到 Titan 的示例属性图。在每个顶点上,有 4 个属性,分别是“ ID ”、“first_name”、“middle_name”和“last_name”。我在顶点属性“ ID ”上建立了唯一索引。类型定义代码如下。

但是,当我通过 Gremlin(通过控制台,即“gremlin.sh”或 REST API)查询图形时,奇怪的是,顶点属性似乎是“惰性”加载的:

  1. 如果我发送查询"g.v(100).__ID__",它将返回 null;
  2. 如果我发送查询"g.v(100).map.iterate();g.v(100).__ID__",它将返回ID属性。

在配置中,我禁用了 storage.transactions,并将 storage.read-only 设置为 true。还尝试将快速属性设置为真或假,但结果没有区别。

是否需要配置其他东西来避免该问题?

0 投票
1 回答
196 浏览

titan - Titan 服务器启动失败

我在启动 titan-server 时看到以下消息:

这是我如何开始的。

我错过了什么?谢谢你的帮助。

当然,在我跑步之后

它启动得很好。这是否意味着我的数据有问题。

0 投票
1 回答
245 浏览

gremlin - Gremlin 'except' 用法似乎不起作用

我正在尝试查找除某些特定顶点之外的顶点,并且下面的此查询不起作用:

我在其中提供查询的“除外”的这种用法不正确吗?

谢谢

0 投票
1 回答
2880 浏览

java - 使用 GremlinPipeline 查找最短路径

我的数据存储在 Titan 图形数据库中。我试图找到两个顶点(v1 和 v2)之间的最短路径。目前我有以下代码:

它返回所有路径。我有以下问题:

  • 这是找到最短路径的最快方法吗?
  • 我怎样才能得到所有这些路径中最短的?

编辑:我正在尝试使用 GremlinGroovyScriptEngine 做同样的工作。我有以下代码:

但我收到以下错误:

对任何这些问题的任何建议都会很棒。

0 投票
1 回答
1843 浏览

gremlin - Gremlin 日期过滤器方法

无论如何要查询泰坦/格雷姆林的日期吗?例如查找过去 X 天的所有结果

任何帮助将非常感激。

0 投票
1 回答
1296 浏览

output - 输出节点/边的复杂 Gremlin 查询

我正在尝试实现一个查询和图形可视化框架,允许用户输入 Gremlin 查询,返回 D3 结果图。D3 图是使用 JSON 构建的 - 这是使用来自 Gremlin 查询的单独顶点边输出创建的。对于简单的查询,例如:

这很好用。但是,当我尝试执行更复杂的查询时,如下所示:

相反,输出采用以下形式:

我想知道 Gremlin 是否有办法将结果输出为节点和边的列表,以便我可以将结果显示为图表。我知道我可以编辑我的 D3 代码以接收这个新输出,但目前对查询的类型/复杂性没有限制,因此键/值对不一定每次都相同。

谢谢。

0 投票
1 回答
624 浏览

titan - ES索引顶点属性的泰坦顺序?

根据最新的 Titan 0.4.1文档,此代码应该可以对结果集中的顶点进行排序:

我想在一组可能很大的顶点上执行这种类型的查询,因此想对其进行索引。文档建议:

大多数外部索引后端都支持原生且高效的排序。但是,必须将 orderBy 方法中使用的属性键配置为在此索引后端中进行索引,以支持原生结果排序。这在 orderBy 键与查询键不同的情况下很重要。如果属性键没有被索引,那么排序需要将所有结果加载到内存中。

特别是对于 Elasticsearch 后端,我们如何创建一个支持这种orderBy方法的索引?

是否有一个简单的第三个参数可以传递给KeyMaker's方法,可能是文档indexed中以下示例的扩展?

0 投票
1 回答
761 浏览

java - 从 Titan 图数据库中选择随机顶点的最佳方法是什么

我需要从图中选择随机顶点或边。我目前正在使用蓝图 API 来查询图形。从我的图中随机选择一个顶点或一条边的最佳方法是什么?

0 投票
3 回答
2186 浏览

neo4j - 如何构建图形数据库以支持三向关系?

我一直在尝试为我一直在开发的个人 web 应用程序找出数据库后端。由于我在数据中需要的灵活性,关系数据库是不可行的,并且可能需要某种形式的文档存储。当我了解图形数据库时,我觉得这将是完美的。

但是,我遇到了一个问题:我需要能够以某种方式定义三向关系。我还没有决定数据库,但我一直在修补 Neo4j,所以我将使用 Cypher 来描述这个问题。

本质上,我从这个开始:

我需要的是一种将多个节点不仅与 a 和 b,而且与 r 相关联的方法。这些其他节点将存储关于所有 3 的不同信息。我决定可能只有两种方法来处理这个问题:将关系存储在自己的节点中或存储对包含信息的节点的引用并创建伪边. 我认为前者可能是一个更好的主意,可以为我们提供更像这样的东西:

所以,现在,这导致了查询数据的问题。使用图形数据库的重点在于能够遍历图形。如果我做这样的事情,有没有办法在 N 类型的节点之间递归遍历?处理这个的正确方法是什么?我已经想到了几种不同的方法来处理这个问题,但它们都有自己的缺点。是否有特定的图形数据库本机支持这种类型的功能?

更新

使用原始代码,我能够使用以下代码递归遍历节点:

但是,一旦我将边缘拉出超边缘,我就无法弄清楚是否有一种方法可以递归地遍历图形到未确定的深度,因为我将交替使用节点类型。我正在寻找类似的东西

如果答案只是在创建超边的同时在 a 和 b 之间创建一条边,那么我的问题就变成了:有没有一种好的方法可以确保边和超边一起被移除?基本上,两者都感觉像是一种变通方法,而不是实际的解决方案。