在使用 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
}
}`
然后使用以下命令将查询发送到 dgraph:txn.QueryWithVars(ctx, q, variableMap)
编辑:这是一个错误。
最佳答案
不是你这样做的方式。但是您可以通过以正常方式连接字符串来构建动态正则表达式模式:
re, err := regexp.Compile("ˆ.*" + regexp.QuoteMeta(searchTerm))
关于regex - 使用 Dgraph Go 客户端 QueryWithVars 时使用变量进行 Dgraph 正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895603/