본문 바로가기

Opensearch5

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 - 용어 수준 쿼리 - exists, fuzzy 용어 수준 쿼리는 분석된 텍스트필드가 아닌 경우, 정확한 검색어가 포함된 문서의 색인을 검색한다. OpenSearch가 제공하는 Docs를 따라가보자. 용어 수준 쿼리에서는 여러 쿼리 형태가 있다. 처음으로 볼 것은 "exists"이다. exists는 "특정 필드가 포함된 문서"를 검색하는 쿼리이다. 1) exists PUT testindex/_doc/1 { "title": "The wind rises" } PUT testindex/_doc/2 { "title": "Gone with the wind", "description": "A 1939 American epic historical film" } 이렇게 testindex 밑에 1, 2번 문서가 포함된 인덱스가 있게 된다. (PUT으로 입력/삽입) 그.. 2024. 4. 3.