Azure cosmosdb Cosmos DB搜索查询,该查询使用任何字符获取顶点值

Azure cosmosdb Cosmos DB搜索查询,该查询使用任何字符获取顶点值,azure-cosmosdb,gremlin,tinkerpop,Azure Cosmosdb,Gremlin,Tinkerpop,我使用的是Azure cosmos Db,在cosmosDB中我有很多顶点,每个顶点都有键值形式的属性。我想找到任何检查以任何字符开头的顶点值的gremlin查询。 过滤器查询存在,但azure过滤器查询不受支持,那么是否存在其他以任何字符开头的顶点属性值的Gremlin查询 “以任何字符开头”需要全文搜索,但Cosmos DB不支持其文档中的全文搜索 JanusGraph支持全文搜索或字符串搜索,例如: g.V().has('bookname', textPrefix('uni')) 欲了解

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

“以任何字符开头”需要全文搜索,但Cosmos DB不支持其文档中的全文搜索

JanusGraph支持全文搜索或字符串搜索,例如:

g.V().has('bookname', textPrefix('uni'))

欲了解更多信息,请参考

尽管我本人从未尝试过CosmosDB,但我不同意John的观点。根据CosmosDB的文档,对任何属性的任何范围查询都是从索引中处理的。因此,如果要查找具有以
a
开头的
name
属性的所有
person
顶点,可以执行以下操作:

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]]

那很有趣。Spectrum Data Hub使用“sw”作为开头:
graph.traversal().V().has('bookname',sw('uni'))
支持以开头、以结尾、包含、包含任何、constains all、通配符和模糊。(我是Data Hub团队的开发人员。)感谢您的回复,但什么是“b”?在
a
之后的字母。我在应用程序中使用gremlin查询进行搜索,因此在搜索中如果我写“a”,那么我想给出与顶点属性值中的a相关的所有内容,因此我希望类似于该查询,它会给出一个顶点,这个顶点属性以这个字符开始。那么这就是你的答案,不是吗?参见示例
marko
m
开头,
josh
j
开头。哇!我在寻找比“中间”更难的东西,真的很强大!谢谢