Skip to content

Commit f8240ab

Browse files
committed
Add ReIndexDictionary feature
1 parent 529ef5e commit f8240ab

File tree

5 files changed

+52
-1
lines changed

5 files changed

+52
-1
lines changed

c-shared-general.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package main
2+
3+
/*
4+
#include "c-shared.h"
5+
#include "c-shared-varray.h"
6+
#include "stdlib.h"
7+
*/
8+
import "C"
9+
10+
//export varnam_reindex_dictionary
11+
func varnam_reindex_dictionary(varnamHandleID C.int) C.int {
12+
handle := getVarnamHandle(varnamHandleID)
13+
handle.err = handle.varnam.ReIndexDictionary()
14+
15+
return checkError(handle.err)
16+
}

cli/main.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ func main() {
3535
debugFlag := flag.Bool("debug", false, "Enable debugging outputs")
3636
schemeFlag := flag.String("s", "", "Scheme ID")
3737

38+
reIndexFlag := flag.Bool("reindex", false, "Reindex user dictionary database")
39+
3840
learnFlag := flag.Bool("learn", false, "Learn a word")
3941
unlearnFlag := flag.Bool("unlearn", false, "Unlearn a word")
4042
trainFlag := flag.Bool("train", false, "Train a word with a particular pattern. 2 Arguments: Pattern & Word")
@@ -77,7 +79,13 @@ func main() {
7779

7880
args := flag.Args()
7981

80-
if *trainFlag {
82+
if *reIndexFlag {
83+
err := varnam.ReIndexDictionary()
84+
if err != nil {
85+
log.Fatal(err.Error())
86+
}
87+
fmt.Println("Successfully re-indexed dictionary.")
88+
} else if *trainFlag {
8189
pattern := args[0]
8290
word := args[1]
8391

govarnam/dictionary.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ func (varnam *Varnam) InitDict(dictPath string) error {
9696
return err
9797
}
9898

99+
// ReIndexDictionary re-indexes dictionary
100+
func (varnam *Varnam) ReIndexDictionary() error {
101+
_, err := varnam.dictConn.Exec("INSERT INTO words_fts(words_fts) VALUES('rebuild');")
102+
return err
103+
}
104+
99105
type searchDictionaryType int32
100106

101107
const (

govarnamgo/general.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package govarnamgo
2+
3+
// #cgo pkg-config: govarnam
4+
// #include "libgovarnam.h"
5+
// #include "stdlib.h"
6+
import "C"
7+
8+
func (handle *VarnamHandle) ReIndexDictionary() error {
9+
err := C.varnam_reindex_dictionary(handle.connectionID)
10+
return handle.checkError(err)
11+
}

govarnamgo/general_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package govarnamgo
2+
3+
import "testing"
4+
5+
func TestReIndex(t *testing.T) {
6+
varnam := getVarnamInstance("ml")
7+
8+
err := varnam.ReIndexDictionary()
9+
assertEqual(t, err, nil)
10+
}

0 commit comments

Comments
 (0)