package main import ( "fmt" "os" "searchEngine/core" "searchEngine/core/index" ) func main() { indexPath := "wikipedia_index.gob" var engine *core.Engine if _, err := os.Stat(indexPath); err == nil { fmt.Println("Loading pre-built index from disk...") idx, loadErr := index.Load(indexPath) if loadErr != nil { fmt.Printf("Warning: Cache file is corrupted (%v). Re-indexing...\n", loadErr) os.Remove(indexPath) engine = core.NewEngine() dumpPath := "C:/Users/bambi15/Documents/wikipedia/simplewiki-2026-07-01-p1p1273731/simplewiki-2026-07-01-p1p1273731.xml" fmt.Println("Ingesting and indexing wiki dump...") err := engine.IndexDump(dumpPath, 4) if err != nil { panic(err) } fmt.Println("\nIndexing complete! Saving index to disk for future runs...") err = engine.Index().Save(indexPath) if err != nil { fmt.Printf("Warning: Failed to save index cache: %v\n", err) } } else { engine = core.NewEngineWithIndex(idx) fmt.Println("Index loaded successfully!") } } fmt.Println("Running test searches...") searches := []string{ "albert einstein", "second world war", "solar system", "rome juliet shakespeare", "cold war united states soviet union", "quantum mechanics", "capital city of france", " ALBERT EINSTEIN ", } for _, query := range searches { fmt.Printf("\nsearching %s:\n", query) results := engine.Search(query) fmt.Printf("Found %d articles matching your query:\n", len(results)) for i, title := range results { if i >= 10 { fmt.Println("... and more.") break } fmt.Printf("- %s\n", title) } } }