From 22f7e9d94affa4bdbe4bfa68dcaed8cfe637b5f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Tue, 27 Jan 2026 13:55:12 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20FULLTEXT=20=EA=B2=80=EC=83=89=EC=9D=84?= =?UTF-8?q?=20LIKE=20=EA=B2=80=EC=83=89=EC=9C=BC=EB=A1=9C=20=EB=A1=A4?= =?UTF-8?q?=EB=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 개발 서버에 FULLTEXT 인덱스 미설치로 500 에러 발생 - 기존 LIKE 검색 방식으로 복원 Co-Authored-By: Claude Opus 4.5 --- app/Services/ItemService.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/Services/ItemService.php b/app/Services/ItemService.php index ff781ea..1f56075 100644 --- a/app/Services/ItemService.php +++ b/app/Services/ItemService.php @@ -386,13 +386,11 @@ public function index(array $params): LengthAwarePaginator } } - // 검색어 (FULLTEXT 인덱스 활용) + // 검색어 if ($q !== '') { - // FULLTEXT 검색 (name, code) + LIKE 검색 (description) - // 한글 검색을 위해 BOOLEAN MODE 사용, 와일드카드(*) 추가 - $searchTerm = '+'.str_replace(' ', '* +', $q).'*'; - $query->where(function ($w) use ($q, $searchTerm) { - $w->whereRaw('MATCH(name, code) AGAINST(? IN BOOLEAN MODE)', [$searchTerm]) + $query->where(function ($w) use ($q) { + $w->where('name', 'like', "%{$q}%") + ->orWhere('code', 'like', "%{$q}%") ->orWhere('description', 'like', "%{$q}%"); }); }