【发布时间】:2018-04-18 20:08:13
【问题描述】:
在使用 Dgraph go 客户端时,是否可以在正则表达式搜索中使用变量?
我们可以使用 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
}
}`
然后使用 txn.QueryWithVars(ctx, q, variableMap) 将查询发送到 dgraph
编辑:这是一个错误。
【问题讨论】:
-
关于您的示例代码的任何内容均无效。尝试从可编译的代码开始。
-
这是使用 Go 客户端进行的 dgraph 查询的一部分。它编译。
-
不,它不编译。这与有效的 Go 完全不同。 See here.
-
Dgraph 开发人员已修复此问题。 github.com/dgraph-io/dgraph/pull/2353