使用Dgraph Go客户端QueryWithVars时,带有变量的Dgraph正则表达式查询

时间:2018-04-18 09:08:25

标签: regex variables go dgraph

使用Dgraph go client时,是否可以使用带正则表达式搜索的变量?

我们可以使用SprintF构建查询,但那将是不安全的。

q :=query Search($searchterm: string) {
        subdomains(func: regexp(name, /^.*$searchterm/)) {
        uid:uid
        name:name
    }
}

以下查询不会返回任何结果,即使它们存在。

q := `query Search($searchterm: string) {
        subdomains(func: regexp(name, /$searchterm/)) {
            uid:uid
            name:name
        }
    }`

或者这个

q := `query Search($searchterm: string) {
        subdomains(func: regexp(name, /.*$searchterm.*/)) {
            uid:uid
            name:name
        }
    }`

然后使用以下命令将查询发送到dgraph:txn.QueryWithVars(ctx,q,variableMap)

编辑:这是一个错误。

1 个答案:

答案 0 :(得分:0)

不是你做的方式。但是你可以通过正常方式连接字符串来构建动态正则表达式模式:

re, err := regexp.Compile("ˆ.*" + regexp.QuoteMeta(searchTerm))