Запрос регулярного выражения Dgraph с переменными при использовании клиента Dgraph Go QueryWithVars

Можно ли использовать переменные с поиском регулярных выражений при использовании клиента 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)

Редактировать: это ошибка.

1 ответ

Не так, как ты это делаешь. Но вы можете построить динамический шаблон регулярных выражений, соединяя строки обычным способом:

re, err := regexp.Compile("ˆ.*" + regexp.QuoteMeta(searchTerm))
Другие вопросы по тегам