mirror of
https://github.com/lionsoul2014/ip2region.git
synced 2025-12-08 19:25:22 +00:00
fix the bug of header write and regen the xdb file
This commit is contained in:
parent
7eb4a5ba5e
commit
9751227b97
Binary file not shown.
@ -69,22 +69,25 @@ func genDb() {
|
||||
tStart := time.Now()
|
||||
maker, err := xdb.NewMaker(indexPolicy, srcFile, dstFile)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create maker: %s", err)
|
||||
fmt.Printf("failed to create %s\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = maker.Init()
|
||||
if err != nil {
|
||||
log.Fatalf("failed Init: %s", err)
|
||||
fmt.Printf("failed Init: %s\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = maker.Start()
|
||||
if err != nil {
|
||||
log.Fatalf("failed Start: %s", err)
|
||||
fmt.Printf("failed Start: %s\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = maker.End()
|
||||
if err != nil {
|
||||
log.Fatalf("failed End: %s", err)
|
||||
fmt.Printf("failed End: %s\n", err)
|
||||
}
|
||||
|
||||
log.Printf("Done, elapsed: %s\n", time.Since(tStart))
|
||||
@ -124,7 +127,8 @@ func testSearch() {
|
||||
|
||||
searcher, err := xdb.NewSearcher(dbFile)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create searcher: %s", err.Error())
|
||||
fmt.Printf("failed to create searcher with `%s`: %s\n", dbFile, err.Error())
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
searcher.Close()
|
||||
@ -228,6 +232,10 @@ func testBench() {
|
||||
}
|
||||
|
||||
searcher, err := xdb.NewSearcher(dbFile)
|
||||
if err != nil {
|
||||
fmt.Printf("failed to create searcher with `%s`: %s\n", dbFile, err)
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
searcher.Close()
|
||||
}()
|
||||
|
||||
@ -115,16 +115,16 @@ func (m *Maker) initDbHeader() error {
|
||||
binary.LittleEndian.PutUint16(header, uint16(VersionNo))
|
||||
|
||||
// 2, index policy code
|
||||
binary.LittleEndian.PutUint16(header, uint16(m.indexPolicy))
|
||||
binary.LittleEndian.PutUint16(header[2:], uint16(m.indexPolicy))
|
||||
|
||||
// 3, generate unix timestamp
|
||||
binary.LittleEndian.PutUint32(header[2:], uint32(time.Now().Unix()))
|
||||
binary.LittleEndian.PutUint32(header[4:], uint32(time.Now().Unix()))
|
||||
|
||||
// 4, index block start ptr
|
||||
binary.LittleEndian.PutUint32(header[6:], uint32(0))
|
||||
binary.LittleEndian.PutUint32(header[8:], uint32(0))
|
||||
|
||||
// 5, index block end ptr
|
||||
binary.LittleEndian.PutUint32(header[10:], uint32(0))
|
||||
binary.LittleEndian.PutUint32(header[12:], uint32(0))
|
||||
|
||||
_, err = m.dstHandle.Write(header)
|
||||
if err != nil {
|
||||
|
||||
@ -43,10 +43,12 @@ func NewSearcher(dbFile string) (*Searcher, error) {
|
||||
}
|
||||
|
||||
func (s *Searcher) Close() {
|
||||
if s.handle != nil {
|
||||
err := s.handle.Close()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// LoadVectorIndex load and cache the vector index for search speedup.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user