azure-cosmosdb - 我们可以为场景提供一个复杂的 gremlin 查询吗
问题描述
我在这里有一个场景,其中(无法附加图像)作为“url”的顶点标签附加到各种其他标签。实时英语动词被制成边缘名称,并在检索期间提供。
URL -> has -> otherentities
URL -> verb1 -> states
URL -> verb2 -> states etc..
Likewise for other labels
URL -> verb1 -> pages
URL -> verb2 -> pages etc..
URL -> verb1 -> lines
URL -> verb2 -> lines etc..
URL -> verb1 -> schedule
URL -> verb2 -> schedule etc..
URL -> verb1 -> section
URL -> verb2 -> section etc..
URL -> verb1 -> box
URL -> verb2 -> box etc..
URL -> verb1 -> input_method
URL -> verb2 -> input_method etc..
作为起点,我有一些顶点名称的标签和值属性,即状态、时间表、部分、框、行、页面和动词(这是作为输入的组合)。
现在,上述标签的值在 CSV 的每个单元格中由 & 分隔,我在 java 中解析 CSV 并检查标签和每个标签的名称并形成动态 gremlin 查询。
所以这里的问题陈述是我们想要获取所有 URL:所有动词都出现在边缘标签(和条件)中,以及所有 input_method 名称-值顶点都存在的顶点(带有和条件)以及名称的其余部分 -存在或条件的值顶点(其他标签)(一个标签多个名称值)。
我已经分离并进行了三个查询来解决我首先获取 startvertex (从任何顶点开始)并获取所有 url 的问题。
Like:
For otherentities-
g.V().hasLabel('" + startLabel + "').inE('has').has('forward','" + startLabel+ "').outV().hasLabel('url')
For rest all labels:
g.V().hasLabel('" + startLabel + "').inE('" + verb + "').has('forward','" + startLabel+ "').outV().hasLabel('url')
Then I am looping each url and forming queries depending on label like:
g.V().hasLabel('url').has('id','fbd385c2-232f-4cdf-842d-ccea20941d4d').as('a').where(and(outE('generate').has('forward','states').where(or(inV().hasLabel('states').has('name', 'Massachusetts'))))).select('a')
而对于 input_method 和其他实体形成另一种查询和单独查询。
那么有没有一种方法可以将所有 4 个查询组合成一个查询并触发以获得我的答案以避免延迟。请帮忙。
解决方案
推荐阅读
- ionic-framework - How do I set the fixed background image in my Ionic 4 app?
- c++ - DrawStatusText 在第一次调用时不绘制文本,仅在后续调用时绘制
- node.js - 如何用玩笑断言 sequelizejs 单元测试中的验证错误?
- python - 只有 1 KB 的文件正在下载,而不是 Python 中的全部内容
- javascript - 如何删除表体
- vuejs2 - vue js如何在不刷新页面的情况下加载JS文件
- visualforce - 如何在自定义 visualforce 页面上自动显示查找图标以选择机会?
- dart - 在堆栈中拟合文本
- python - 无法在 python 列表中执行编码和解码
- recursion - 这个递归函数的深度是多少?