From c91c3afd8700138f8eb8a25a4ae422c2c9e46cea Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 28 Jul 2026 17:37:06 +0200 Subject: refactored entire code base to be in the package core so i can later implement interfaces to interact with the engine --- index/index.go | 67 ---------------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 index/index.go (limited to 'index') diff --git a/index/index.go b/index/index.go deleted file mode 100644 index 60c3d9f..0000000 --- a/index/index.go +++ /dev/null @@ -1,67 +0,0 @@ -package index - -import ( - "searchEngine/analyzer" - "sync" -) - -type Posting struct { - DocId int - BodyCount int - TitleCount int - BodyPositions []int - TitlePositions []int -} -type InvertedIndex struct { - Mu sync.RWMutex - Data map[string][]Posting - DocNames map[int]string -} - -func New() *InvertedIndex { - return &InvertedIndex{ - Data: make(map[string][]Posting), - DocNames: make(map[int]string), - } -} - -func (idx *InvertedIndex) Add(docID int, title string, bodyTokens []string) { - titleTokens := analyzer.ProcessText(title) - - type fieldStats struct { - body int - bodyPositions []int - title int - titlePositions []int - } - docStats := make(map[string]fieldStats) - - for position, token := range titleTokens { - stats := docStats[token] - stats.title++ - stats.titlePositions = append(stats.titlePositions, position) - docStats[token] = stats - } - - for position, token := range bodyTokens { - stats := docStats[token] - stats.body++ - stats.bodyPositions = append(stats.bodyPositions, position) - docStats[token] = stats - } - - idx.Mu.Lock() - defer idx.Mu.Unlock() - - idx.DocNames[docID] = title - - for token, stats := range docStats { - idx.Data[token] = append(idx.Data[token], Posting{ - DocId: docID, - BodyCount: stats.body, - TitleCount: stats.title, - BodyPositions: stats.bodyPositions, - TitlePositions: stats.titlePositions, - }) - } -} -- cgit v1.2.3