Searches - Flaarum Tutorials (Golang) Python
Flaarum provides statements for different searches. This makes searches more comfortable than using a function call.
Sample Code
package main
import (
"github.com/saenuma/flaarum"
)
func main() {
cl := flaarum.NewClient("127.0.0.1", "not-yet-ready", "first_proj")
rows, err := cl.Search(`
table: user_roles expand
limit: 100
where:
user = 32
`)
if err != nil {
panic(err)
}
roles := make([]string, 0)
for _, row := range *rows {
roles = append(roles, row["roleid.role"])
}
}
Sample Search Statements
-
table: users fields: name email limit: 10 start_index: 50 order_by: name asc
-
table: users distinct fields: name limit: 150
table: grades expand fields: userid.firstname userid.surname grade order_by: userid.firstname where: userid.age > 20 and userid.age < 50
A Where statement can take either and, or. Not both of them
-
a where condition that contains space.
table: grades where: score < 90 and remark = 'not suspicious'
-
in queries
table: users where: id in 1 13 15 3 and name in 'James John' 'John Paul' 'Paulo liv'
-
has queries
table: testtable where: stringd has 'going home'
-
Compound Queries
table: t1 joiner: or where1: id > 1 and id < 3 :: where2: userid > 16 and userid < 323 :: where3: score > 300 and score < 600 ::
Compound queries expects a joiner which takes the value of either and, or
Compound queries can have upto to four where statements
has queries doesn't use an index. So are generally slower than other queries
has queries only operates on string and text data types.