fix search
Deploy / deploy (push) Successful in 8s

This commit is contained in:
2026-05-06 12:57:11 +02:00
parent c332fe2e87
commit f2d33a6974
2 changed files with 25 additions and 5 deletions
+24 -4
View File
@@ -171,14 +171,34 @@ class Repository
public function searchLogEntries(string $query, int $limit = 200, int $offset = 0): array
{
try {
$stmt = $this->db->pdo()->prepare(
"SELECT e.* FROM log_entries e
JOIN log_entries_fts fts ON e.id = fts.rowid
WHERE log_entries_fts MATCH ?
ORDER BY rank
LIMIT ? OFFSET ?"
);
$stmt->execute([$query, $limit, $offset]);
return $stmt->fetchAll();
} catch (\PDOException $e) {
if (str_contains($e->getMessage(), 'fts5: syntax error')) {
return $this->searchLogEntriesLike($query, $limit, $offset);
}
throw $e;
}
}
private function searchLogEntriesLike(string $query, int $limit = 200, int $offset = 0): array
{
$like = '%' . str_replace(['%', '_'], ['\\%', '\\_'], $query) . '%';
$stmt = $this->db->pdo()->prepare(
"SELECT e.* FROM log_entries e
JOIN log_entries_fts fts ON e.id = fts.rowid
WHERE log_entries_fts MATCH ?
ORDER BY rank
WHERE e.line LIKE ?
ORDER BY e.created_at DESC
LIMIT ? OFFSET ?"
);
$stmt->execute([$query, $limit, $offset]);
$stmt->execute([$like, $limit, $offset]);
return $stmt->fetchAll();
}