簡體   English   中英

GraphOfTheGodsFactory和Gremlin查詢

[英]GraphOfTheGodsFactory and Gremlin query

我試圖給出的查詢, 這里在Java中:

import static com.tinkerpop.blueprints.Compare

Graph g = GraphOfTheGodsFactory.create("gods")
g.query().has("age", GREATER_THAN, 1000).vertices().iterator().hasNext

但這似乎返回false盡管以下一個返回true但沒有利用索引的好處:

new GremlinPipeline(g.getVertices()).has("age", GREATER_THAN, 1000).toList().size() > 0 

示例5在這里對某人有用嗎?

這是我創建的要測試的項目: https : //github.com/joan38/TestTitan這應該打印出擁有1000多年歷史的眾神的名字,但事實並非如此。

我真的覺得TinkerPop或Titan不能直截了當地:(也許是我。

干杯

這是ElasticSearch的陷阱。 問題是您的代碼運行太快。 ES的默認刷新間隔為1秒。 我不知道使用嵌入式ES時配置此間隔的任何方法,因此您所能做的就是:在加載圖形的代碼和查詢數據的代碼之間添加Thread.sleep(1000)

不知道為什么它不為您返回true 查看我的Titan控制台會話:

gremlin> g = GraphOfTheGodsFactory.create("gods")
==>titangraph[local:gods]
gremlin> g.query().has("age", GREATER_THAN, 1000).vertices().iterator().hasNext()
==>true

更進一步:

gremlin> g.query().has("age", GREATER_THAN, 1000).vertices()
==>v[20]
==>v[4]
==>v[16]
==>v[32]
gremlin> g.query().has("age", GREATER_THAN, 1000).vertices()._().age
==>4500
==>10000
==>5000
==>4000
gremlin> g.query().has("age", GREATER_THAN, 1000).has('name','saturn').vertices()._().map
==>{name=saturn, type=titan, age=10000}
gremlin> new GremlinPipeline(g.getVertices()).has("age", GREATER_THAN, 1000).toList().size()
==>4

也許可以在Titan控制台中嘗試一下,並確保它像在這里對我一樣對您有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM