A year ago I had a problem: 1,600+ cybersecurity articles spread across a Go backend, and a search bar that returned garbage.
The standard MySQL LIKE '%keyword%' approach was embarrassing. Searching "pentest Active Directory" returned articles that happened to contain the word "pentest" on one side and "Directory" somewhere else — totally unrelated content ranked first.
So I rebuilt it from scratch. Here's the honest version of what happened.
The stack I chose (and why)
My backend is Go Fiber. I needed something that:









