페이지네이션 질문드립니다.
37
24 asked
안녕하세요 강사님
페이지네이션 강의에서 1번글 ~ 7번글로 insert를 한 이후에 size를 지정하면 1번글부터 나오는데
id가 랜덤임에도 엘라스틱서치에는 mysql seq개념처럼 insert된것부터 document가 쌓여
그냥 조회하면 순차적으로 insert된것부터 나오게 되는걸까요?
만약 아무런 조건없이 asc정렬을 하고싶다하면 그냥 _search만 해도 되는걸까요? ( 실무에서도 그냥 아무런 조건없이 순차적으로 보여준다하면 그냥 findAll만 하는지 궁금합니다 )
Answer 3
0
안녕하세요 ! 질문 잘 해주셨어요 ~
질문해주신 내용에 답변 드려볼게요 !
"id가 랜덤임에도 엘라스틱서치에는 mysql seq개념처럼 insert된것부터 document가 쌓여 그냥 조회하면 순차적으로 insert된것부터 나오게 되는걸까요?"
-> 우선 Elasticsearch는 기본적으로 데이터를 삽입 순서대로 보장해서 반환하지 않아요 ~
기본 조회 시에는 관련성 점수(_score) 기준으로 정렬이 되는데, "글"이라는 동일한 키워드로 검색하면 모든 문서의 점수가 같아지게 돼요 ! 이렇게 점수가 동일할 때는 내부적으로 삽입 순서와 유사하게 나오는 경우가 많아서 순서대로 나오는 것처럼 보이는 거예요 :)
"만약 아무런 조건없이 asc정렬을 하고싶다하면 그냥 _search만 해도 되는걸까요?"
-> 삽입 순서대로 정렬을 보장받고 싶으시다면 _search만으로는 안정적이지 않아요 ~
실무에서도 명확한 순서가 필요하다면 sort 옵션을 사용해서 특정 필드 기준으로 정렬하는 것을 권장드려요 !
예를 들어 날짜 필드나 id 필드 기준으로 asc 정렬하는 방식을 많이 사용해요:)
추가로 궁금하신 점 있으시면 언제든 편하게 추가 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. 나마스테님.
Elasticsearch의 페이지네이션 및 정렬에 대한 질문을 주셨네요. 이와 관련된 내용을 설명드리겠습니다.
Elasticsearch 페이지네이션 및 정렬
기본 정렬: Elasticsearch에서 document가 인서트된 순서대로 조회되는 것은 아닙니다. 기본적으로 Elasticsearch는
score에 따라 결과를 정렬합니다._id가 랜덤으로 생성된다면 기본 정렬 순서에 영향을 주지 않습니다.특정 정렬 없이 조회:
_search요청을 할 때 별도의 정렬 조건을 주지 않으면 기본적으로_score에 따라 정렬됩니다. 만약 랜덤하게 부여된id로 정렬하고 싶다면 명시적으로 정렬 조건을 지정해야 합니다.ASC 정렬: 특별히 ASC나 DESC 정렬을 원하신다면
sort파라미터를 명시적으로 추가하여 원하는 필드로 정렬할 수 있습니다. 아무 조건 없이 정렬하기 위해서는 명시적으로 정렬 기준이 설정되지 않는 이상 기본 정렬은 적용되지 않습니다. 예를 들어,asc정렬을 하고 싶다면 다음과 같이 쿼리를 작성할 수 있습니다:
{
"query": {
"match_all": {}
},
"sort": [
{"_id": {"order": "asc"}}
]
}
- Real-world practices: 실무에서는 보통 요구사항에 따라 적절한 필드로 정렬을 명시합니다. 가령, 생성날짜나 특정 기준에 따라 문서를 정렬하여 보여주게 됩니다. 단순히 모든 결과를 순차적으로 보여주는 경우도 있지만, 대체로 비즈니스 요구사항에 맞게 정렬 기준이 존재합니다.
따라서 Elasticsearch의 기본 동작을 이해하고 요구에 맞는 쿼리를 작성하는 것이 중요합니다. 다음 링크에서 이하와 관련된 토픽을 더 찾아보실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
멀티 필드 실무 질문드립니다.
0
37
1
insert , upsert 질문드립니다.
0
38
2
안녕하세요 질문 있습니다.
0
78
2
검색어 애널라이저 질문
0
71
2
스프링부트에 엘라스틱서치 연결하기
0
119
2
60강 ProductDoument 코드 관련 질문 있습니다!
0
60
2
analyser를 인덱스 삭제후에 설정하던데 인덱스 생성후에도 analyser 수정이 가능한가요?
0
63
2
정말 사소한 질문이지만 ... 궁금해서 물어봅니다.
0
93
1
도큐먼트 upsert API 관련 강의 자료 오류 제보 드립니다.
0
79
2
안녕하세요 선생님 '실전에서 바로 써먹는 Kafka 입문' 강의 질문 있습니다.
0
112
1
spring boot project 에 테이블을 여러 개 만드는 경우의 설정을 알고 싶습니다.
0
77
2
58 강에서 동의어처리가 안 됩니다
0
139
4
opensearch nori 플러그인 지원
0
304
2
스프링부트에서 엘라스틱 인덱스 설정(동의어 필터 적용 에러)
0
158
2
docker compose.yml 주석 중에 이해 안되는 부분이 있어요
0
99
1
Elastic Cloud 에서 "Logs and metrics" 기능 관련 질문 있습니다.
0
103
1
must_not 쿼리는 term 쿼리만 사용 가능한가요 ?
0
100
2
nori 관련 질문드립니다.
0
77
2
(질문아님)Windows에서 Elasticsearch 하는 법
0
111
2
안녕하세요 선생님 Elastic Cloud 비용 관련해서 질문 드립니다.
0
238
2
Elasticsearch 설치하기 강의에서 질문 있습니다.
0
200
2
강의 질문입니다.
0
95
1
Elasticsearch 지난 2021년 1월 Elastic 은 소프트웨어 라이선스 전력 변경 - 관련 질문
0
55
1
[보충 강의] 비용 나가지 않게 Elastic Cloud 리소스 정리하기 - 영상 누락
0
77
2

