I tried this, but I just gave a simple example.
Firstly, if I give a not regexp, this method will be difficult again.
Secondly,if I match too many uids with a regexp,I can’t use this var results in finnal block.
Thirdly,as I said above, I just gave a simple demo. In fact, multiple regular expressions, equals, or other comparisons will be used. Maybe I will write the dql is :
{
m (func: eq(resource_key, "requirement"))@filter(eq(workspace_key,"_xGWV7") AND( (( eq(is_for_commercial,true) OR eq(is_for_commercial,true) )AND gt(total_autocase_number,10) AND ( regexp(requirement_purpose,/use/i) AND ge(total_testcase_number,50) AND lt(total_testcase_number,1001)) ) OR ((eq(requirement_delivery_type,"1") OR eq(requirement_delivery_status,"6"))AND regexp(qa,/wANL/i) AND NOT regexp(tse,/zeng/i) AND regexp(requirement_id,/R72/i) AND regexp(market_requirement_id,/xGW7/i) and regexp(requirement_delivery_sm,/zhang/i) AND NOT eq(tse,"chase")) OR (regexp(testcase_url,/https:\/\/www.baidu.com.\/rdcloud\/workspaces\/xGW7\/apps\/test\/testlib\/xGW7/i) AND regexp(qa,/wanl/i)) AND NOT eq(total_autocase_number,0) AND NOT eq(total_testcase_number,0) AND eq(requirement_delivery_status,"6") )
OR( regexp(name,/SMF/i) AND (regexp(tse,/xx/i) OR regexp(tse,/bb/i))AND (regexp(requirement_delivery_sm,/cxb/i) OR regexp(requirement_delivery_sm,/wuxj/i))AND regexp(requirement_id,/R7.2/i))
) @recurse(depth:20){
id
name
resourceKey : resource_key
comment
total_autocase_number
total_testcase_number
is_for_commercial
market_requirement_id
requirement_delivery_sm
requirement_delivery_status
requirement_delivery_type
requirement_id
requirement_purpose
target_market
tse
delivery_report_url
qa
solution_specification_url
test_design_url
testcase_url
parent :~parent_to_child @facets
}
}