Cosmos DB搜索查询,它将Vertex值与任何字符一起使用

时间:2017-07-27 06:24:34

标签: azure-cosmosdb gremlin tinkerpop

我正在使用Azure cosmos Db,在cosmosDB中我有很多顶点,每个顶点都有键值形式的属性。我想找到任何gremlin查询,它检查以任何字符开头的Vertex值。 过滤查询是存在的,但是不支持azure过滤查询,那么是否有任何其他Gremlin查询采用以任何字符开头的Vertex属性值?

2 个答案:

答案 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