我正在使用Azure cosmos Db,在cosmosDB中我有很多顶点,每个顶点都有键值形式的属性。我想找到任何gremlin查询,它检查以任何字符开头的Vertex值。 过滤查询是存在的,但是不支持azure过滤查询,那么是否有任何其他Gremlin查询采用以任何字符开头的Vertex属性值?
答案 0 :(得分:3)
虽然我自己从未尝试过CosmosDB,但我不得不同意John的意见。根据CosmosDB的文档,任何属性的任何范围查询都是从索引处理的。因此,如果要查找person
属性以name
开头的所有a
个顶点,您可以执行以下操作:
g.V().has("person", "name", between("a", "b"))`
TinkerPop玩具图的一个具体例子:
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().has("name", between("m", "n")).valueMap()
==>[name:[marko], age:[29]]
gremlin> g.V().has("name", between("j", "k")).valueMap()
==>[name:[josh], age:[32]]
gremlin> g.V().has("name", between("j", "n")).valueMap()
==>[name:[marko], age:[29]]
==>[name:[lop], lang:[java]]
==>[name:[josh], age:[32]]
答案 1 :(得分:2)
“从任何字符开始”需要全文搜索,但Cosmos DB不支持文档https://docs.microsoft.com/en-us/azure/cosmos-db/gremlin-support#gremlin-steps。
JanusGraph支持全文搜索或字符串搜索,例如:
g.V().has('bookname', textPrefix('uni'))
有关详细信息,请参阅http://docs.janusgraph.org/latest/index-parameters.html#text-search