This commit is contained in:
ct
2025-07-15 02:56:39 +08:00
parent d57c75d5d7
commit 31383349c2
8 changed files with 116 additions and 35 deletions

View File

@@ -71,14 +71,14 @@ public function searchMemes(Request $request)
->where(function ($q) use ($query) {
// Search in name and description using ILIKE for partial matches
$q->where('name', 'ILIKE', "%{$query}%")
->orWhere('description', 'ILIKE', "%{$query}%")
->orWhere('description', 'ILIKE', "%{$query}%")
// Search in JSON arrays using PostgreSQL JSON operators
->orWhereRaw("keywords::text ILIKE ?", ["%{$query}%"])
->orWhereRaw("action_keywords::text ILIKE ?", ["%{$query}%"])
->orWhereRaw("emotion_keywords::text ILIKE ?", ["%{$query}%"])
->orWhereRaw("misc_keywords::text ILIKE ?", ["%{$query}%"]);
->orWhereRaw('keywords::text ILIKE ?', ["%{$query}%"])
->orWhereRaw('action_keywords::text ILIKE ?', ["%{$query}%"])
->orWhereRaw('emotion_keywords::text ILIKE ?', ["%{$query}%"])
->orWhereRaw('misc_keywords::text ILIKE ?', ["%{$query}%"]);
})
->orderByRaw("
->orderByRaw('
CASE
WHEN name ILIKE ? THEN 1
WHEN description ILIKE ? THEN 2
@@ -88,7 +88,7 @@ public function searchMemes(Request $request)
WHEN misc_keywords::text ILIKE ? THEN 6
ELSE 7
END, name ASC
", ["%{$query}%", "%{$query}%", "%{$query}%", "%{$query}%", "%{$query}%", "%{$query}%"])
', ["%{$query}%", "%{$query}%", "%{$query}%", "%{$query}%", "%{$query}%", "%{$query}%"])
->take($limit)
->get();
}
@@ -115,12 +115,12 @@ public function searchBackgrounds(Request $request)
// Search in prompt field using ILIKE for partial matches
$backgrounds = BackgroundMedia::where('status', 'completed')
->where('prompt', 'ILIKE', "%{$query}%")
->orderByRaw("
->orderByRaw('
CASE
WHEN prompt ILIKE ? THEN 1
ELSE 2
END, prompt ASC
", ["%{$query}%"])
', ["%{$query}%"])
->take($limit)
->get();
}