elastic search(4)
-
[ELASTICSEARCH] search api
es에서는 아래의 명령을 호출해서 해당 index에 검색 요청을 할 수가 있다. SEARCH 아래의 명령은 title field에 test라는 단어가 들어 있는 문서에 대해 검색 요청을 진행했다. $> curl -X GET "localhost:9200/test/_search?q=title:test&pretty" url이 아닌 body 형태로도 명령을 호출할 수 있다. $> curl -X GET "localhost:9200/test/_search?pretty" -H 'Content-Type: application/json' -d'{ "query" : { "term" : { "title" : "test" } }}' SORTING 검색 결과에 대한 sorting도 진행 할 수 있다. $..
2025.08.25 -
[ELASTICSEARCH] version Upgrade와 shard 배치
elasticsearch version upgrade 클러스터로 구성된 es의 버전을 업그레이드 하는 방법으로는 모든 es node를 다 중지한 후 업그레이드 하는 방식과 클러스터로 구성된 node를 하나씩 중지한 후 es 버전 업그레이드 한 후 클러스터에 다시 조인시키는 방법이 있다. 두 번째 방법에 대해 설명하고자 한다. 우선 es 버전 업그레이드를 하기 위해서는 아래의 버전 규칙을 따라야 한다. 5.6 이하 버전인 경우 : es 5.6 버전으로 업그레이드 -> 6.8 버전으로 업그레이드 -> 7.8 버전으로 업그레이드 5.6 이상 6.8 이하인 경우 : 6.8 버전으로 업그레이드 -> 7.8 버전으로 업그레이드6.8 이상 7.8 이하인 경우 : 7.8 버전으로 업그레이드 1. 업그레이드를 하기 전에..
2025.08.14 -
[ELASTICSEARCH] elasticsearch.yml 파일 분석
es의 가장 중요 요소인 config 파일에 대해 분석해 보기로 한다. es를 설치하면 config 폴더가 생성이 되고 그 안에 elasticsearch.yml 파일이 존재하게 되는데 사실상 es 설치의 핵심이라고 볼 수가 있다. 이에 대해 분석해 보자. Cluster cluster.name: elasticsearch 클러스터의 이름을 설정할 수가 있다. 내가 가진 노드들을 하나의 클러스터로 묶기 위해서는 해당 이름이 모두 똑같아야 하나의 클러스터로 구성 할 수가 있다. Node node.name: ${HOSTNAME}node.attr.rack: r1node.master: truenode.data: falsenode.ingest: false node.name : node 별 이름을 설정할 수가 있다. 하..
2025.08.11 -
[ELASTICSEARCH] 모든 데이터 가져오기
Elastic search의 경우 각각의 shard에서 데이터들을 저장하고 있고, 검색 시 각 shard 들로부터 데이터를 모은 후 정렬해서 결과를 뿌려주는 방식으로 검색이 제공된다. 이렇게 모은 후 정렬해서 결과를 뿌려주기 때문에 더 큰 사이즈 혹은 더 많은 사이즈의 요청 시 해당 결과를 못 주는 경우가 있다. 다시 간단히 설명하자면, 내가 만약 10000개의 데이터를 Elastic search에 요청하게 되면, 각 shard에서는 10000개씩 데이터를 가져오게 되고, 10000개씩 모든 데이터(예를 들어 shard가 5개라면 50000개)를 정렬 후에 10000를 추린 후 결과를 주게된다. 결과적으로 from, size 등을 통해 es에서 모든 데이터를 가져오려고 시도하게 되면, 10000건 이전까..
2021.11.14