Skip to content

Commit 175c969

Browse files
authored
Merge pull request #21 from CodIN-INU/develop
fix : 인덱스에 커스텀 필터 세팅 추가
2 parents 60b867c + b2539c8 commit 175c969

2 files changed

Lines changed: 39 additions & 35 deletions

File tree

src/main/java/inu/codin/codin/domain/admin/service/AdminService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import lombok.extern.slf4j.Slf4j;
88
import org.springframework.scheduling.annotation.Async;
99
import org.springframework.stereotype.Service;
10+
import org.springframework.transaction.annotation.Transactional;
1011

1112
import java.util.List;
1213

@@ -21,12 +22,14 @@ public class AdminService {
2122
private final LectureSummarizationService lectureSummarizationService;
2223

2324
@Async
25+
@Transactional
2426
public void reindexAllLectures() {
2527
log.info("[reIndexAllLectures] 모든 과목을 다시 ES에 재 인덱싱합니다.");
2628
indexer.lectureIndex();
2729
}
2830

2931
@Async
32+
@Transactional
3033
public void reSummarizeAllLectures() {
3134
log.info("[reSummarizeAllLectures] 모든 교과목을 다시 AI 요약본을 생성합니다.");
3235
List<Long> lectureIds = lectureRepository.findAllLectureIds();

src/main/java/inu/codin/codin/domain/elasticsearch/indexer/LectureStartupIndexer.java

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -53,41 +53,7 @@ private void manageIndex() {
5353
}
5454

5555
log.info("ElasticSearch lectures 인덱스를 생성합니다.");
56-
Map<String, Object> settings = Map.of(
57-
"analysis", Map.of(
58-
"tokenizer", Map.of(
59-
"nori_tokenizer", Map.of(
60-
"type", "nori_tokenizer",
61-
"decompound_mode", "mixed"
62-
)
63-
),
64-
"filter", Map.of(
65-
"nori_readingform", Map.of(
66-
"type", "nori_readingform"
67-
),
68-
"nori_hanja_readingform", Map.of(
69-
"type", "nori_hanja_readingform"
70-
),
71-
"autocomplete_filter", Map.of(
72-
"type", "edge_ngram",
73-
"min_gram", 1,
74-
"max_gram", 20
75-
)
76-
),
77-
"analyzer", Map.of(
78-
"nori", Map.of(
79-
"type", "custom",
80-
"tokenizer", "nori_tokenizer",
81-
"filter", List.of("nori_readingform", "nori_hanja_readingform", "lowercase")
82-
),
83-
"nori_autocomplete", Map.of(
84-
"type", "custom",
85-
"tokenizer", "nori_tokenizer",
86-
"filter", List.of("nori_readingform", "autocomplete_filter", "lowercase")
87-
)
88-
)
89-
)
90-
);
56+
Map<String, Object> settings = createSetting();
9157
indexOps.create(settings);
9258
indexOps.putMapping(indexOps.createMapping(LectureDocument.class));
9359
log.info("ElasticSearch lectures 인덱스 및 매핑 생성 완료.");
@@ -122,4 +88,39 @@ private long performIndexing() {
12288

12389
return totalProcessed;
12490
}
91+
92+
private Map<String, Object> createSetting() {
93+
return Map.of(
94+
"analysis", Map.of(
95+
"tokenizer", Map.of(
96+
"nori_tokenizer", Map.of(
97+
"type", "nori_tokenizer",
98+
"decompound_mode", "mixed"
99+
)
100+
),
101+
"filter", Map.of(
102+
"nori_readingform", Map.of(
103+
"type", "nori_readingform"
104+
),
105+
"autocomplete_filter", Map.of(
106+
"type", "edge_ngram",
107+
"min_gram", 1,
108+
"max_gram", 20
109+
)
110+
),
111+
"analyzer", Map.of(
112+
"nori", Map.of(
113+
"type", "custom",
114+
"tokenizer", "nori_tokenizer",
115+
"filter", List.of("nori_readingform", "lowercase")
116+
),
117+
"nori_autocomplete", Map.of(
118+
"type", "custom",
119+
"tokenizer", "nori_tokenizer",
120+
"filter", List.of("nori_readingform", "autocomplete_filter", "lowercase")
121+
)
122+
)
123+
)
124+
);
125+
}
125126
}

0 commit comments

Comments
 (0)