본문 바로가기

QueryDSL4

OpenSearch QueryDSL - 용어 수준 쿼리 - Range, Regexp 필드의 값 범위를 검색하기 위해서는 range를 사용한다. 값이 10보다 크거나 같고, 20보다는 작거나 같은 문서를 검색하는 쿼리 GET shakespeare/_search { "query": { "range": { "line_id": { "gte": 10, "lte": 20 } } } } 범위 쿼리에서 필드 매개변수는 아래와 같은 연산자 매개변수를 허용한다. gte: 이상 gt: 보다 큰 lte: 작거나 같음 lt: 미만 2019년에 추가된 제품을 모두 찾는 쿼리 GET products/_search { "query": { "range": { "created": { "gte": "2019/01/01", "lte": "2019/12/31" } } } } 날짜간의 범위를 설정할 때 지원되는 날짜 형식은 .. 2024. 4. 3.
OpenSearch QueryDSL - 날짜 형식, 날짜 연산 사용 가능한 날짜 필드는 세 가지 형태가 있다. 1) Opensearch 내부에 저장되는 형태인 Epoch 이후의 밀리초 형태 Epoch란 보통 1970년 1월 1일 00:00:00 UTC를 의미하고, 이 값은 양수여야 한다. 우리가 알고 있는 컴퓨터 시스템에서 널리 사용되는 Unix Time (유닉스 타임) 이라고 불리는 것과 일치한다. 예를 들면, 1613401200 은 2021년 2월 16일 00:00:00을 밀리초로 변환한 값이다. - epoch_millis 2) 서식화된 문자열 (Formatted String) 이 형식은 특정 형식으로 표시하는 문자열로, 사람이 읽고 이해하기 쉬운 형태이다. 예를 들면, "2022-09-01T00:00:00" 은 ISO8601 형식에 따라 표현된 문자열이다. 3.. 2024. 4. 3.
OpenSearch QueryDSL - 용어 수준 쿼리 - IDs, prefix 1) IDs ids 쿼리는 도큐먼트의 ID를 통해 하나 이상의 특정 문서를 찾는데 사용하며, 필드 "_id" 에 정의되어있는 번호이다. 아래의 예제는 shakespeare의 value 34229, 91296 두 가지 번호의 아이디의 문서를 찾는 예제이다. GET shakespeare/_search { "query": { "ids": { "values": [ 34229, 91296 ] } } } 사실상 문서 번호로 찾을 일은 크게 있지는 않아서 예제도 간단 명료하다. 2) Prefix prefix 쿼리는 특정 문자로 시작하는 것을 찾는 쿼리이다. 아래처럼 speaker (화자) 필드의 KING H로 시작하는 문서를 찾게 된다. GET shakespeare/_search { "query": { "prefix.. 2024. 4. 3.
OpenSearch QueryDSL - 쿼리 기초 1. 쿼리의 방법 엘라스틱 서치와 같이 쿼리의 방법은 "1)쿼리 스트링"과 "2)쿼리 DSL" 두 가지가 있다. "쿼리 스트링"은 REST API 주소에 붙여 쿼리를 작성하는 방법으로, 간단한 조건 검색 시 보통 사용하며 "쿼리 DSL"은 복잡한 조건을 사용하는 경우 쿼리 본문에 JSON 형태로 쿼리를 작성한다. - 쿼리 스트링 GET human_data/_search?q=genom_name:genom_one -쿼리 DSL GET human_data/_search { "query: { "match": { "genom_name": "genom_one" } } } 2. 쿼리의 종류 쿼리는 여러 쿼리 절로 구성되는데, 크게 "리프 쿼리"와 "복합 쿼리"라는 두 가지 범주로 분류된다. 리프 쿼리는 특정 필드에서.. 2024. 4. 3.