格林林:如何查找其属性*包含*特定值的顶点

时间:2018-08-19 18:34:49

标签: list gremlin vertex contain

想象一下我有一些顶点,这些顶点的属性是列表,例如:

import cv2 import numpy as np img = cv2.imread("/your/path/C03eN.jpg") def find_contours_and_centers(img_input): img_gray = cv2.cvtColor(img_input, cv2.COLOR_BGR2GRAY) img_gray = cv2.bilateralFilter(img_gray, 3, 27,27) #(T, thresh) = cv2.threshold(img_input, 0, 100, 0) #_, contours_raw, hierarchy = cv2.findContours(img_gray, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) _, contours_raw, hierarchy = cv2.findContours(img_gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) contours = [i for i in contours_raw if cv2.contourArea(i) > 20] contour_centers = [] for idx, c in enumerate(contours): M = cv2.moments(c) cX = int(M["m10"] / M["m00"]) cY = int(M["m01"] / M["m00"]) samp_bounds = cv2.boundingRect(c) contour_centers.append(((cX,cY), samp_bounds)) print("{0} contour centers and bounds found".format(len(contour_centers))) contour_centers = sorted(contour_centers, key=lambda x: x[0]) return (contours, contour_centers) conts, cents = find_contours_and_centers(img.copy()) x,y,w,h = cv2.boundingRect(conts[0]) cropped = img[y+10:y+(h-10),x+10:x+(w-10)] cv2.imwrite("/your/path/cropped.jpg", cropped)

如何找到g.addV('v').property('prop',['a','b','c']) 包含某个值的情况? 这似乎是显而易见的尝试:

prop

但这不起作用:

g.V().has(P.within('prop'),'a')

2 个答案:

答案 0 :(得分:2)

如果您使用VertexProperty列表基数(请参阅文档中的multi-properties),则可以这样完成:

  async function notify() {
    await delay(2000);
    throw new Error();
  }

  notify().then(/*...*/).catch(/*...*/);

请注意,throw是通过>>> g.addV('v').property(list_, 'prop', 'a').property(list_, 'prop', 'b').property(list_, 'prop', 'c').next() v[0] >>> g.V().has('prop', within('a')).toList() [v[0]] 来自枚举的。

答案 1 :(得分:2)

如果它是真实列表(不是多值属性),则必须展开该值:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('v').property('prop',['a','b','c'])
==>v[0]
gremlin> g.V().filter(values('prop').unfold().is('a'))
==>v[0]

// or

gremlin> g.V().has('prop', unfold().is('a'))
==>v[0]

请注意,此过滤器需要对所有顶点进行全面扫描,因为无法为单个列表条目建立索引。因此,您应该看看Jason的答案,因为多属性通常是更好的选择。