diff --git a/src/main/kotlin/com/retrip/map/infra/adapter/in/batch/MapBatchConfig.kt b/src/main/kotlin/com/retrip/map/infra/adapter/in/batch/MapBatchConfig.kt index fad0e93..71611d8 100644 --- a/src/main/kotlin/com/retrip/map/infra/adapter/in/batch/MapBatchConfig.kt +++ b/src/main/kotlin/com/retrip/map/infra/adapter/in/batch/MapBatchConfig.kt @@ -6,6 +6,7 @@ import org.springframework.batch.core.Job import org.springframework.batch.core.Step import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing import org.springframework.batch.core.job.builder.JobBuilder +import org.springframework.batch.core.launch.support.RunIdIncrementer import org.springframework.batch.core.repository.JobRepository import org.springframework.batch.core.step.builder.StepBuilder import org.springframework.beans.factory.annotation.Value @@ -30,6 +31,7 @@ class MapBatchConfig( ): Job { return JobBuilder(jobName, jobRepository) .start(mapStep) + .incrementer(RunIdIncrementer()) // 🔥 이 라인 추가 .build() } diff --git a/src/main/kotlin/com/retrip/map/infra/adapter/out/search/elasticsearch/entity/LocationDocument.kt b/src/main/kotlin/com/retrip/map/infra/adapter/out/search/elasticsearch/entity/LocationDocument.kt index c483667..3d1bb33 100644 --- a/src/main/kotlin/com/retrip/map/infra/adapter/out/search/elasticsearch/entity/LocationDocument.kt +++ b/src/main/kotlin/com/retrip/map/infra/adapter/out/search/elasticsearch/entity/LocationDocument.kt @@ -7,14 +7,19 @@ import jakarta.persistence.Id import org.springframework.data.elasticsearch.annotations.Document import org.springframework.data.elasticsearch.annotations.Field import org.springframework.data.elasticsearch.annotations.FieldType +import org.springframework.data.elasticsearch.annotations.Mapping +import org.springframework.data.elasticsearch.annotations.Setting import java.time.LocalDateTime import java.util.* @Document(indexName = "locations") +@Setting(settingPath = "elasticsearch/settings/setting.json") +@Mapping(mappingPath = "elasticsearch/mappings/mapping.json") data class LocationDocument( + @Id val id: UUID, - @Field(type = FieldType.Text) + @Field(type = FieldType.Text, analyzer = "korean") val name: String, @Field(type = FieldType.Keyword) val category: String, diff --git a/src/main/kotlin/com/retrip/map/infra/config/ElasticsearchConfig.kt b/src/main/kotlin/com/retrip/map/infra/config/ElasticsearchConfig.kt index 0cbf1e4..e4c3042 100644 --- a/src/main/kotlin/com/retrip/map/infra/config/ElasticsearchConfig.kt +++ b/src/main/kotlin/com/retrip/map/infra/config/ElasticsearchConfig.kt @@ -19,7 +19,7 @@ class ElasticsearchConfig { val credentialsProvider = BasicCredentialsProvider() credentialsProvider.setCredentials( AuthScope.ANY, - UsernamePasswordCredentials("elastic", "61tkSdZs6lUk2Mfa+nq5") + UsernamePasswordCredentials("elastic", "test1234") ) val sslContext = SSLContexts.custom() diff --git a/src/main/resources/elasticsearch/mappings/mapping.json b/src/main/resources/elasticsearch/mappings/mapping.json new file mode 100644 index 0000000..7e0952a --- /dev/null +++ b/src/main/resources/elasticsearch/mappings/mapping.json @@ -0,0 +1,8 @@ +{ + "properties": { + "name": { + "type": "text", + "analyzer": "korean" + } + } +} diff --git a/src/main/resources/elasticsearch/settings/setting.json b/src/main/resources/elasticsearch/settings/setting.json new file mode 100644 index 0000000..bb86056 --- /dev/null +++ b/src/main/resources/elasticsearch/settings/setting.json @@ -0,0 +1,22 @@ +{ + "analysis": { + "tokenizer": { + "nori_none": { + "type": "nori_tokenizer", + "decompound_mode": "none" + }, + "nori_discard": { + "type": "nori_tokenizer", + "decompound_mode": "discard" + }, + "nori_mixed": { + "type": "nori_tokenizer", + "decompound_mode": "mixed" + } + }, + "analyzer": { + "korean": { + "type": "nori"} + } + } +}