Wrapper 쿼리
Wrapper 쿼리
완전한 쿼리를 Base64 인코딩된 JSON 형식으로 제출하려면 wrapper 쿼리를 사용해요. 문자열 값만 지원하는 컨텍스트에 쿼리를 임베드해야 할 때 유용해요.
출처: 문서
본문
wrapper 쿼리는 완전한 쿼리를 Base64 인코딩된 JSON 형식으로 제출할 수 있게 해줘요. 문자열 값만 지원하는 컨텍스트에 쿼리를 임베드해야 할 때 유용해요. 이 쿼리는 시스템 제약을 다뤄야 할 때만 사용하세요. 가독성과 유지보수성을 위해 가능하면 표준 JSON 기반 쿼리를 사용하는 것이 더 좋아요.
예제 (Example)
products라는 인덱스를 다음 매핑으로 생성하세요:
PUT /products
{
"mappings": {
"properties": {
"title": { "type": "text" }
}
}
}
샘플 문서를 인덱싱하세요:
POST /products/_bulk
{ "index": { "_id": 1 } }
{ "title": "Wireless headphones with noise cancellation" }
{ "index": { "_id": 2 } }
{ "title": "Bluetooth speaker" }
{ "index": { "_id": 3 } }
{ "title": "Over-ear headphones with rich bass" }
다음 쿼리를 Base64 형식으로 인코딩하세요:
echo -n '{ "match": { "title": "headphones" } }' | base64
인코딩된 쿼리를 실행하세요:
POST /products/_search
{
"query": {
"wrapper": {
"query": "eyAibWF0Y2giOiB7ICJ0aXRsZSI6ICJoZWFkcGhvbmVzIiB9IH0="
}
}
}
응답에는 일치하는 두 문서가 포함돼요:
{
...
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 0.20098841,
"hits": [
{
"_index": "products",
"_id": "1",
"_score": 0.20098841,
"_source": {
"title": "Wireless headphones with noise cancellation"
}
},
{
"_index": "products",
"_id": "3",
"_score": 0.18459359,
"_source": {
"title": "Over-ear headphones with rich bass"
}
}
]
}
}