Header Ads

Header ADS

Boolean Query

 

1️⃣ Boolean Query কি?

  1. OpenSearch–এ boolean query হলো কমপ্লেক্স search query যেখানে তুমি একাধিক condition combine করতে পারো।

  2. এটা bool keyword দিয়ে করা হয়।

  3. Boolean query–এ প্রধান তিনটি clause আছে:

ClauseমানেExample Use
mustএই condition অবশ্যই match করতে হবে (logical AND)“category = electronics AND price > 100”
shouldএই condition match করলে score বাড়ে, কিন্তু match না করলেও চলে (logical OR)“category = electronics OR category = fashion”
must_notএই condition match হলে document exclude হবে (logical NOT)“exclude status_code = CANCELLED”

💡 Tip:

must + should একসাথে ব্যবহার করা যায়।

must_not সবসময় exclude করে।


2️⃣ Basic Boolean Query Example

ধরো আমাদের /orders index আছে। আমরা চাই:

category = "electronics"

price >= 100

status_code != "CANCELLED"

GET /orders/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "category": "electronics" } },
        { "range": { "price": { "gte": 100 } } }
      ],
      "must_not": [
        { "match": { "status_code": "CANCELLED" } }
      ]
    }
  }
}
  1. must → দুইটা condition satisfy করতে হবে

  2. must_not → যদি status_code CANCELLED হয়, document exclude হবে


3️⃣ Boolean Query with should

ধরো আমরা চাই:

category = electronics OR category = fashion

price >= 50

exclude cancelled

GET /orders/_search
{
  "query": {
    "bool": {
      "should": [
        { "match": { "category": "electronics" } },
        { "match": { "category": "fashion" } }
      ],
      "must": [
        { "range": { "price": { "gte": 50 } } }
      ],
      "must_not": [
        { "match": { "status_code": "CANCELLED" } }
      ]
    }
  }
}

এখানে should → OR logic

must → AND logic

must_not → NOT logic


4️⃣ Notes / Tips

  1. যদি should clause থাকে এবং must না থাকে → OpenSearch মনে করবে “কমপক্ষে একটি should match করতে হবে”

  2. minimum_should_match parameter দিয়ে ঠিক করা যায় কতটা should condition satisfy করতে হবে

Example:

{
  "query": {
    "bool": {
      "should": [
        { "match": { "category": "electronics" } },
        { "match": { "category": "fashion" } }
      ],
      "minimum_should_match": 1
    }
  }
}

এখানে কমপক্ষে ১টা condition match করতে হবে


✅ Boolean query হলো OpenSearch–এর সবচেয়ে গুরুত্বপূর্ণ ও শক্তিশালী query type।

  1. তুমি AND, OR, NOT logic সহজে apply করতে পারো

  2. Aggregation বা filter–এর সাথে মিলিয়ে complex queries বানাতে পারো


Powered by Blogger.