본문 바로가기

용어 수준 쿼리3

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 - 용어 수준 쿼리 - 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.