Blog top image

Bool query


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"
          }
        }
      ]
    }
  }
}