dict @ 65fd7bc9218f1bb0b4a5dd8d8141239b3211e1cd

ref: Use storage instead of memory

With async search we can afford waiting a bit more it to load without
making the ui sluggish.
 1diff --git a/cmd/ui/ui.go b/cmd/ui/ui.go
 2index 50b854328935a0a51ff79a78d5e66c0c66b60b82..a12a66699b010842f1c32a50655cfd3899379189 100644
 3--- a/cmd/ui/ui.go
 4+++ b/cmd/ui/ui.go
 5@@ -13,10 +13,6 @@
 6 	"git.gabrielgio.me/dict/db"
 7 )
 8 
 9-const (
10-	memory = ":memory:"
11-)
12-
13 var UICommand = &cli.Command{
14 	Name:  "ui",
15 	Usage: "interactive dictionary",
16@@ -34,12 +30,7 @@ 	},
17 }
18 
19 func Run(ctx context.Context, name string) error {
20-	db, err := db.Open(memory)
21-	if err != nil {
22-		return err
23-	}
24-
25-	err = db.Restore(ctx, name)
26+	db, err := db.Open(name)
27 	if err != nil {
28 		return err
29 	}
30@@ -61,7 +52,7 @@ 			defer tx.Unlock()
31 			search = v
32 
33 			go func(v string) {
34-				words, err := db.SelectDict(ctx, v, 100)
35+				words, err := db.SelectDict(ctx, v, 20)
36 				if err != nil {
37 					return
38 				}
39diff --git a/db/db.go b/db/db.go
40index c3699d79fe965aea28372e1b68f1950d4775fb86..24c2a31e219d10174de8923941f207f4496cb93c 100644
41--- a/db/db.go
42+++ b/db/db.go
43@@ -57,7 +57,7 @@ 		ctx,
44 		`SELECT
45 			word, line
46 		FROM words
47-		WHERE word MATCH ?
48+		WHERE words MATCH ?
49 		ORDER BY rank
50 		LIMIT ?;`,
51 		query, limit,