Elasticsearch
-
[Elasticsearch] 엘라스틱 서치 SpringBoot 연동Elasticsearch 2023. 6. 26. 13:54
7.10.2 버전(무료) 💡 Elasticsearch는 7.10.2 버전까지만 무료로 사용이 가능하며, xpack과 logstash는 선택사항이다. 1. build.gradle 설정 파일 implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch' implements 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.10.2' logstash를 사용할 경우 implementation 'net.logstash.logback:logstash-logback-encoder:7.2' 2. application.yml 설정 파일 elasticsearch 호스트 ip ..
-
[Elasticsearch] 엘라스틱 서치 Query vs Query DSLElasticsearch 2023. 4. 18. 17:54
Elasticsearch에서 Query와 Query DSL은 서로 다른 개념입니다. Query: Elasticsearch에서 데이터를 검색할 때 사용하는 쿼리를 의미합니다. 일반적으로 REST API 호출 시 URI 또는 요청 본문에 쿼리 파라미터로 작성하여 전달합니다. 예를 들어, **GET /index/_search?q=field:value**와 같이 URI에 검색어를 작성하여 검색을 수행할 수 있습니다. Query DSL: Elasticsearch에서 제공하는 검색 쿼리를 작성하기 위한 쿼리 언어입니다. 쿼리 DSL은 JSON 형식으로 작성되며, REST API 호출 시 요청 본문에 포함하여 전달합니다. 예를 들어, 아래와 같은 Query DSL을 작성하여 검색을 수행할 수 있습니다. { "quer..
-
[Elasticsearch] 엘라스틱서치 데이터 수정(update)Elasticsearch 2023. 4. 18. 17:46
Elasticsearch에서는 데이터를 수정하는 대신에 재색인(reindexing)을 통해 데이터를 갱신합니다. 이는 Elasticsearch의 인덱싱 시스템의 특성상, 일단 인덱스에 데이터가 색인되면 수정이 불가능하기 때문입니다. 따라서, 데이터를 수정해야할 경우에는 먼저 해당 문서를 삭제(delete)한 뒤, 새로운 문서를 인덱싱(index)하는 방식으로 데이터를 갱신합니다. 이를 통해 수정된 데이터가 새로운 문서로 색인되고, 검색 시에도 최신의 데이터를 조회할 수 있습니다. 재색인의 경우에는 삭제 되었다가 새로 문서를 인덱싱했기 때문에 id값이 변화하게 됩니다. 수정 순서 기존 문서를 가져옵니다. 수정할 필드를 업데이트합니다. 수정된 문서를 Elasticsearch에 다시 색인합니다. _update..
-
[Elasticsearch] 엘라스틱 서치 데이터 삭제(delete)Elasticsearch 2023. 4. 17. 17:28
Elasticsearch에서는 삭제 쿼리를 사용하여 문서를 삭제할 수 있습니다. DELETE //_doc/ : 삭제할 문서가 있는 인덱스 이름을 지정합니다. : 삭제할 문서의 ID를 지정합니다. 예를 들어, my_index 인덱스에 my_document ID를 가진 문서를 삭제하려면 다음과 같은 쿼리를 사용할 수 있습니다. DELETE /my_index/_doc/my_document 또는 다음과 같은 쿼리도 사용할 수 있습니다. DELETE /my_index/_doc/my_document?routing=user1 이 경우 routing 매개 변수를 사용하여 문서를 삭제할 때 라우팅 값을 지정합니다. 라우팅 값을 지정하면 해당 값과 일치하는 샤드만 검색하여 문서를 삭제합니다. 이를 통해 쿼리의 성능을 최적..
-
[Elasticsearch] 엘라스틱 서치 데이터 검색(search)Elasticsearch 2023. 4. 10. 08:45
match match 쿼리는 특정 필드에서 주어진 텍스트와 일치하는 문서를 반환합니다. 다음은 match 쿼리의 예시입니다. { "query": { "match": { "title": "Elasticsearch" } } } 위 쿼리는 title 필드에서 **"Elasticsearch"**와 일치하는 모든 문서를 반환합니다. match_all match_all 쿼리는 인덱스의 모든 문서를 반환합니다. 다음은 match_all 쿼리의 예시입니다. { "query": { "match_all": {} } } multi_match multi_match 쿼리는 여러 필드에서 동시에 일치하는 값을 찾는데 사용합니다. query 매개변수에 검색어를 입력하면, 해당 검색어를 포함하는 모든 필드에서 검색합니다. 이 쿼리를..
-
[Elasticsearch] 엘라스틱 서치 데이터 색인Elasticsearch 2023. 4. 7. 13:47
Elasticsearch에서 데이터를 입력할 때, 저장이 아닌 색인한다고 표현합니다. Bulk API(일괄 처리) Bulk API는 여러 개의 문서를 한 번에 색인하거나 삭제하거나 업데이트할 수 있는 API입니다. 일반적으로 대량의 데이터를 처리해야 할 때 유용하게 사용됩니다. 매우 큰 데이터셋을 처리할 때 일괄 처리를 수행하므로 시스템 부하를 줄일 수 있습니다. Bulk API는 색인, 업데이트, 삭제를 수행할 수 있습니다. // Bulk API를 사용하여 색인하는 예시 POST /{인덱스명}/_bulk { "index" : { "_index" : "{인덱스명}", "_id" : "1" } } { "title": "제목1", "content": "내용1" } { "index" : { "_index" :..
-
[Elasticsearch] 엘라스틱 서치 형태소 분석기Elasticsearch 2023. 4. 6. 16:28
인덱스 생성 이전 게시글 참고 - https://manybean.tistory.com/entry/Elasticsearch-%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1-%EC%84%9C%EC%B9%98-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%83%9D%EC%84%B1 [Elasticsearch] 엘라스틱 서치 인덱스 생성 인덱스를 생성하는 기본 쿼리 PUT / { "settings": { "number_of_shards": , "number_of_replicas": , ... }, "mappings": { } } Settings와 Mappings 모든 인덱스는 두 개의 정보 단위를 가지고 있는데 바로 settings와 mappings이다. manybean.tistor..
-
[Elasticsearch] 엘라스틱 서치 인덱스 생성Elasticsearch 2023. 4. 6. 15:38
인덱스를 생성하는 기본 쿼리 PUT / { "settings": { "number_of_shards": , "number_of_replicas": , ... }, "mappings": { } } Settings와 Mappings 모든 인덱스는 두 개의 정보 단위를 가지고 있는데 바로 settings와 mappings이다. Mappings 데이터 타입 필드의 데이터 타입을 정의합니다. 데이터 타입에는 숫자, 문자열, 날짜 등이 있으며, 데이터의 형식과 크기에 따라 적절한 데이터 타입을 지정해야 합니다. "properties": { "title": { "type": "text" }, "price": { "type": "integer" }, "created_at": { "type": "date", "forma..