From a601953b11f85cccd27fa32a54c6a269106695c6 Mon Sep 17 00:00:00 2001 From: Hogeun Lee Date: Thu, 5 Feb 2026 00:05:26 -0600 Subject: [PATCH 1/4] =?UTF-8?q?feat=20:=20style=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EA=B2=80=EC=83=89=ED=95=98=EA=B8=B0=20?= =?UTF-8?q?=EC=9C=84=ED=95=B4=EC=84=9C=20searchableAttributes=EC=97=90=20s?= =?UTF-8?q?tyleNames=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/clokey/domain/search/document/HistoryDocument.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clokey-api/src/main/java/org/clokey/domain/search/document/HistoryDocument.java b/clokey-api/src/main/java/org/clokey/domain/search/document/HistoryDocument.java index bef20a5e..41a0aaf8 100644 --- a/clokey-api/src/main/java/org/clokey/domain/search/document/HistoryDocument.java +++ b/clokey-api/src/main/java/org/clokey/domain/search/document/HistoryDocument.java @@ -11,7 +11,7 @@ @Setter @Document(indexUid = "histories") @Setting( - searchableAttributes = {"hashtagNames", "categoryNames"}, + searchableAttributes = {"styleNames", "hashtagNames", "categoryNames"}, displayedAttributes = { "id", "memberId", @@ -45,6 +45,8 @@ public class HistoryDocument { private String nickname; // Member.nickname + private List styleNames; + private List hashtagNames; private List categoryNames; From 472da80a453308b6cd770ac3a3853a5f1e4f8eb2 Mon Sep 17 00:00:00 2001 From: Hogeun Lee Date: Thu, 5 Feb 2026 00:06:59 -0600 Subject: [PATCH 2/4] =?UTF-8?q?feat=20:=20HistoryStyle=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SearchDocumentServiceImpl.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/clokey-api/src/main/java/org/clokey/domain/search/service/SearchDocumentServiceImpl.java b/clokey-api/src/main/java/org/clokey/domain/search/service/SearchDocumentServiceImpl.java index 0f9930f9..abb88204 100644 --- a/clokey-api/src/main/java/org/clokey/domain/search/service/SearchDocumentServiceImpl.java +++ b/clokey-api/src/main/java/org/clokey/domain/search/service/SearchDocumentServiceImpl.java @@ -5,18 +5,12 @@ import java.util.Set; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; -import org.clokey.domain.history.repository.HistoryClothTagRepository; -import org.clokey.domain.history.repository.HistoryHashtagRepository; -import org.clokey.domain.history.repository.HistoryImageRepository; -import org.clokey.domain.history.repository.HistoryRepository; +import org.clokey.domain.history.repository.*; import org.clokey.domain.like.repository.MemberLikeRepository; import org.clokey.domain.member.repository.MemberRepository; import org.clokey.domain.search.document.HistoryDocument; import org.clokey.domain.search.document.MemberDocument; -import org.clokey.history.entity.History; -import org.clokey.history.entity.HistoryClothTag; -import org.clokey.history.entity.HistoryHashtag; -import org.clokey.history.entity.HistoryImage; +import org.clokey.history.entity.*; import org.clokey.member.entity.Member; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,6 +23,7 @@ public class SearchDocumentServiceImpl implements SearchDocumentService { private final HistoryRepository historyRepository; private final MemberRepository memberRepository; private final MemberLikeRepository memberLikeRepository; + private final HistoryStyleRepository historyStyleRepository; private final HistoryHashtagRepository historyHashtagRepository; private final HistoryImageRepository historyImageRepository; private final HistoryClothTagRepository historyClothTagRepository; @@ -51,13 +46,16 @@ public HistoryDocument toHistoryDocument(Long historyId) { List images = historyImageRepository.findByHistoryId(historyId); String historyImageUrl = images.isEmpty() ? null : images.get(0).getImageUrl(); + // 스타일 이름 리스트 + List historyStyles = historyStyleRepository.findByHistoryId(historyId); + List styleNames = + historyStyles.stream().map(hs -> hs.getStyle().getName()).toList(); + // 해시태그 이름 리스트 List historyHashtags = historyHashtagRepository.findAllByHistoryIdWithHashtag(historyId); List hashtagNames = - historyHashtags.stream() - .map(hh -> hh.getHashtag().getName()) - .collect(Collectors.toList()); + historyHashtags.stream().map(hh -> hh.getHashtag().getName()).toList(); // 카테고리 이름 리스트 (중복 제거) Set categoryNamesSet = @@ -85,6 +83,7 @@ public HistoryDocument toHistoryDocument(Long historyId) { document.setHistoryImageUrl(historyImageUrl); document.setProfileImageUrl(member.getProfileImageUrl()); document.setNickname(member.getNickname()); + document.setStyleNames(styleNames); document.setHashtagNames(hashtagNames); document.setCategoryNames(categoryNames); From 570969d1194dd7a4d2e86b3c87124c59cd7d1046 Mon Sep 17 00:00:00 2001 From: Hogeun Lee Date: Thu, 5 Feb 2026 00:07:12 -0600 Subject: [PATCH 3/4] =?UTF-8?q?feat=20:=20HistoryStyle=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From 33249210ad3a10d8cfbf8e71b0f603b9db3a9f13 Mon Sep 17 00:00:00 2001 From: Hogeun Lee Date: Thu, 5 Feb 2026 00:07:37 -0600 Subject: [PATCH 4/4] =?UTF-8?q?feat=20:=20documentRepository=20=EB=AA=85?= =?UTF-8?q?=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/repository/MeiliSearchRepositoryImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/clokey-api/src/main/java/org/clokey/domain/search/repository/MeiliSearchRepositoryImpl.java b/clokey-api/src/main/java/org/clokey/domain/search/repository/MeiliSearchRepositoryImpl.java index 6b0911c2..7920448e 100644 --- a/clokey-api/src/main/java/org/clokey/domain/search/repository/MeiliSearchRepositoryImpl.java +++ b/clokey-api/src/main/java/org/clokey/domain/search/repository/MeiliSearchRepositoryImpl.java @@ -27,18 +27,18 @@ public class MeiliSearchRepositoryImpl implements SearchRepository { private static final String HISTORY_INDEX = "histories"; private static final String MEMBER_INDEX = "members"; private final MeilisearchOperations meilisearchOperations; - private final MeilisearchHistoryRepository historyRepository; - private final MeilisearchMemberRepository memberRepository; + private final MeilisearchHistoryRepository historyDocumentRepository; + private final MeilisearchMemberRepository memberDocumentRepository; // MemberDocument 관련 메서드 구현 @Override public void saveAllMembers(List documents) { - memberRepository.saveAll(documents); + memberDocumentRepository.saveAll(documents); } @Override public void deleteMember(String id) { - memberRepository.deleteById(id); + memberDocumentRepository.deleteById(id); } @Override @@ -96,12 +96,12 @@ public SliceResponse findUsersByKeyword( // HistoryDocument 관련 메서드 구현 @Override public void saveAllHistories(List documents) { - historyRepository.saveAll(documents); + historyDocumentRepository.saveAll(documents); } @Override public void deleteHistory(String id) { - historyRepository.deleteById(id); + historyDocumentRepository.deleteById(id); } @Override