fix the bug of header write and regen the xdb file

This commit is contained in:
lion 2022-06-21 10:47:28 +08:00
parent 7eb4a5ba5e
commit 9751227b97
4 changed files with 22 additions and 12 deletions

Binary file not shown.

View File

@ -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()
}()

View File

@ -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 {

View File

@ -43,11 +43,13 @@ 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.
// this will take up VectorIndexRows x VectorIndexCols x VectorIndexSize bytes memory.