更新时间:2022-02-22 GMT+08:00

带过滤的n_paths算法(2.2.22)

概述

带过滤的n_paths算法是给定起始点source、目的点target、跳数k、路径数n、过滤条件filters,找出source和target间不多于n条的k跳无环路径。

  • 算法名称:带过滤的n_paths
  • 英文名称:filtered_n_paths

应用场景

任意网络。

请求参数

表1 body体格式

字段名

是否必选

类型

说明

algorithmName

String

对应值为“filtered_n_paths”。

parameters

Json格式

具体格式见表parameters参数说明。

filters

JSon Array

过滤条件列表,数组的每个元素分别对应每一层要做的查询和过滤条件。具体格式见表filters元素格式。

表2 parameters参数说明

参数

是否必选

说明

类型

取值范围

默认值

source

起始点

String

图内部点

target

目标点

String

图内部点

k

跳数

Int

[2,6]

2

n

路径数

Int

[1,1000]

1

表3 filters元素格式

参数

是否必选

类型

取值范围

默认值

说明

edge_filter

json

全图查询边时的过滤条件。

vertex_filter

json

全图查询点时的过滤条件。

表4 response_data参数说明

字段名

是否必选

类型

说明

path_length

int

路径长度。

paths_number

int

路径数量。

paths

JsonArray

路径集合,["111","119","58","96","82","57","56"]。

source

String

起始点。

target

String

目标点。

请求示例

POST http://IP:PORT/ges/v1.0/{project_id}/graphs/{graph_name}/action?action_id=execute-algorithm
{
    "algorithmName": "filtered_n_paths",
    "filters": [
    {
        "edge_filter":
        {
            "property_filter":
            {
                "leftvalue":
                {
                    "label_name": "labelName"
                },
                "predicate": "=",
                "rightvalue":
                {
                    "value": "default"
                }
            }
        }
    }],
    "parameters":
    {
        "k": 6,
        "n": 100,
        "source": "111",
        "target": "56"
    }
}

返回示例

{
    "jobId": "b14f6380-f115-46ab-990e-9a76a984ebd2154236181",
    "jobType": 2
}

查询任务示例

GET http://IP:PORT/ges/v1.0/{project_id}/graphs/{graph_name}/jobs/{jobId}/status

任务返回示例

{
    "data": {
        "outputs": {
            "data_return_size": 3,
            "paths": [
                [
                    "111",
                    "119",
                    "58",
                    "96",
                    "82",
                    "57",
                    "56"
                ],
                [
                    "111",
                    "119",
                    "58",
                    "61",
                    "76",
                    "57",
                    "56"
                ],
                [
                    "111",
                    "119",
                    "58",
                    "79",
                    "76",
                    "57",
                    "56"
                ]
            ],
            "runtime": 0.000308,
            "source": "111",
            "path_length": 6,
            "data_offset": 0,
            "paths_number": 3,
            "data_total_size": 3,
            "target": "56"
        }
    },
    "status": "success"
}