Bool query হচ্ছে কম্পাউন্ড query এর এক্সাম্পল। Bool query এর আমরা টপ লেভেল কোন ফিল্ড এর ভালু বসাবনা, বরং query এর ভিতরে query লিখে সেখানে বসাব। নিচে bool query এর structure দেয়া হলো
POST \_search
{
"query": {
"bool": {
"must": [...],
"filter": [...],
"must_not": [...],
"should": [...]
}
}
}
বুল কুয়ারির ব্যবহার
- must -> document এ থাকতেই হবে
- must_not -> document থাকতে হবে না
- filter -> কিছু document ফিলটার আউট করার জন্য
- should -> document এ থাকলে ভালো
উদাহরণ
যদি আমরা এমন employee চাই যারা জার্মানির এবং সালারি 60,000 এর উপর
POST employee/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"country": "Germany"
}
},
{
"range": {
"salary": {
"gte": 600000
}
}
}
]
}
}
}
এবং শুধু জার্মান যাদের সালারি 60000 এর উপর কিন্তু পুরুষ না
POST employee/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"country": "German"
}
},
{
"range": {
"salary": {
"gte": 600000
}
}
}
],
"must_not": [
{
"match": {
"gender": "Male"
}
}
]
}
}
}