Add competitor-discovery search (/discover)

The actual "who sells honey with a .es domain" feature: search sites
by keyword — matched against page title/description/keywords/body
text via a new MySQL fulltext index on site_pages — combined with an
optional TLD filter on the domain. Results are sites ranked by number
of matching pages. Shows nothing until a filter is entered, so it
doesn't just duplicate the plain Sites browse page.

Verified against real .es data pulled in for the test (dominio ->
4 matching sites, correctly ranked and TLD-filtered).
This commit is contained in:
m105
2026-07-22 21:22:14 +03:00
parent f15eb5aec1
commit cefb846a19
5 changed files with 167 additions and 1 deletions
@@ -11,8 +11,12 @@
</head>
<body class="min-h-screen bg-white text-neutral-900 antialiased dark:bg-neutral-950 dark:text-neutral-100">
<header class="border-b border-neutral-200 dark:border-neutral-800">
<div class="mx-auto flex max-w-5xl items-center px-4 py-4">
<div class="mx-auto flex max-w-5xl items-center gap-6 px-4 py-4">
<a href="{{ route('sites.index') }}" class="text-lg font-semibold">Huginn</a>
<nav class="flex gap-4 text-sm">
<a href="{{ route('sites.index') }}" class="text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100">Sites</a>
<a href="{{ route('discover') }}" class="text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100">Discover</a>
</nav>
</div>
</header>