এই নির্দেশিকা তালিকা ফিল্টার সিনট্যাক্স এবং কিভাবে বিভিন্ন ধরনের রিসোর্স ফিল্টার করতে হয় তা বর্ণনা করে।
কিছু API পদ্ধতি প্রতিক্রিয়ায় ফিরে আসা সংস্থানগুলিকে সীমিত করতে একটি ফিল্টার গ্রহণ করতে পারে।
সারসংক্ষেপ
এই বিভাগটি তালিকা ফিল্টার সিনট্যাক্স কাঠামোর একটি দ্রুত ওভারভিউ প্রদান করে।
ফিল্টার হল একটি স্ট্রিং যাতে একটি
expression
থাকে। একটিexpression
হল তুলনার একটি বুলিয়ান সমন্বয়:expression = ["NOT"] comparison { ("AND" | "OR") ["NOT"] comparison } expression = ( expression )
একটি
comparison
একটি মানের সাথে একটি সম্পদ ক্ষেত্রের সাথে মেলে৷ আপনি সমস্ত সাধারণ তুলনা অপারেটর ব্যবহার করতে পারেন।comparison = name OP value OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
has
অপারেটর, একটি কোলন (:
), স্ট্রিং এবং পুনরাবৃত্তি ক্ষেত্রে ব্যবহার করা যেতে পারে। বিস্তারিত জানার জন্য আছে অপারেটর বিভাগটি দেখুন।আপনি ফিল্টারে নিম্নলিখিত ধরনের মান ব্যবহার করতে পারেন:
- সংখ্যা
- স্ট্রিংস
- বন্ধনী অভিব্যক্তি
value = number| string | "*" | "(" expression ")"
স্ট্রিং নিম্নলিখিত প্রতিনিধিত্ব করতে পারে:
- নির্বিচারে পাঠ্য
- বুলিয়ানস
- এনাম মান
- টাইমস্ট্যাম্প
বুলিয়ান এক্সপ্রেশন
expression = ["NOT"|"-"] comparison {["AND" | "OR"] ["NOT"|"-"] comparison}
নিম্নলিখিত ক্রমে অপারেশন করা হয়:
-
NOT
-
OR
-
AND
উদাহরণস্বরূপ, নিম্নলিখিত অভিব্যক্তিগুলি সমতুল্য:
a OR NOT b AND NOT c OR d
(a OR (NOT b)) AND ((NOT c) OR d)
আপনি তুলনার মধ্যে AND
অপারেটর বাদ দিতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত ফিল্টারগুলি একই:
c=d AND e=f
c=d e=f
আপনি NOT
এর বিকল্প হিসাবে হাইফেন ( -
) ব্যবহার করতে পারেন। হাইফেন ( -
) এবং নিম্নলিখিত তুলনার মধ্যে একটি স্থান থাকতে পারে না। উদাহরণস্বরূপ, নিম্নলিখিত ফিল্টারগুলি একই:
NOT e=f
-e=f
তুলনা
এই বিভাগটি নিম্নোক্ত মত "name OP value"
তুলনা বর্ণনা করে:
comparison = name OP value
কোথায়
OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
name = identifier { "." identifier }
identifier = unquoted_text
value = number | string | "*" | "(" expression ")"
একটি তুলনার বাম দিকে একটি API সংস্থান ক্ষেত্রের পথের নাম৷ নামটি পিরিয়ড ( .
) দ্বারা সংযুক্ত সম্পদ শনাক্তকারীর একটি সিরিজ নিয়ে গঠিত। প্রতিটি ক্ষেত্র শনাক্তকারীকে সেই ক্ষেত্রের পরবর্তী স্তরের নাম অনুসরণ করা হয়। উদাহরণ স্বরূপ, একটি জটিল ক্ষেত্র item
আছে এমন একটি সংস্থান বিবেচনা করুন যেখানে অন্য একটি জটিল ফিল্ড tool
রয়েছে, যার একটি ক্ষেত্র নামে shape
রয়েছে। এই সম্পদের জন্য একটি ফিল্টারে, আপনি item.tool.shape
নামের সাথে আকৃতি উল্লেখ করবেন।
ডান দিকটি সাধারণত একটি স্কেলার মান যা ক্ষেত্রের প্রকারে রূপান্তরিত হয় এবং এটির সাথে তুলনা করা হয়। আরও বিশদ বিবরণের জন্য মান আক্ষরিক প্রকার বিভাগটি দেখুন।
তুলনার ডান দিকটি আক্ষরিক মান এবং/অথবা বুলিয়ান এক্সপ্রেশনগুলির একটি বন্ধনীযুক্ত বুলিয়ান সংমিশ্রণ হিসাবেও প্রকাশ করা যেতে পারে যাতে শুধুমাত্র আক্ষরিক মান রয়েছে ( NOT
এর আগে বা ছাড়া)। বাম পাশের নাম এবং তুলনা অপারেটর প্রতিটি মান প্রয়োগ করা হয়. উদাহরণস্বরূপ, নিম্নলিখিত ফিল্টারগুলি একই:
deal.name = ("test 1" OR "test 2")
deal.name = "test 1" OR deal.name = "test 2"
এখানে দুটি সমতুল্য ফিল্টারের আরেকটি, আরও জটিল উদাহরণ:
deal.name = ("test 1" OR "test 2" AND (NOT "test3" OR "test4"))
(deal.name = "test 1" OR deal.name = "test 2") AND ( (NOT deal.name = "test3") OR deal.name = "test4")
মান আক্ষরিক প্রকার
একটি তুলনা অপারেটরের ডান পাশের মানটি সংখ্যা এবং স্ট্রিং লিটারেলে শ্রেণীবদ্ধ করা যেতে পারে।
সংখ্যা
এই বিভাগে সাংখ্যিক আক্ষরিক উপস্থাপনা বর্ণনা করে।
টাইপ | সংজ্ঞা | উদাহরণ |
---|---|---|
ডাবল | চিহ্ন ("-") সহ বা ছাড়া একটি দশমিক বিন্দু ধারণ করা যেকোনো সংখ্যাকে দ্বিগুণ হিসাবে গণ্য করা হয়। |
|
পূর্ণসংখ্যা | চিহ্ন ("-") সহ বা ছাড়া দশমিক বিন্দু নেই এমন যেকোনো সংখ্যাকে পূর্ণসংখ্যা হিসাবে গণ্য করা হয়। |
|
স্ট্রিং
এই বিভাগে আপনি ফিল্টার সিনট্যাক্সে স্ট্রিং লিটারেল হিসাবে লিখতে পারেন এমন ধরনের বর্ণনা করে।
টাইপ | সংজ্ঞা | উদাহরণ |
---|---|---|
বুলিয়ান | যেকোন চিঠির ক্ষেত্রে TRUE বা FALSE । |
|
এনাম | একটি গণনা প্রকারের নাম আক্ষরিক। Enums কেস-সংবেদনশীল. | FINALIZED এবং Finalized একই নয়৷ |
স্ট্রিং | UTF-8 এনকোডেড বা 7-বিট ASCII টেক্সট ধারণ করে এমন যেকোনো স্ট্রিং। এম্বেড করা উদ্ধৃতি চিহ্ন অবশ্যই একটি ব্যাকস্ল্যাশ দিয়ে এস্কেপ করতে হবে। হোয়াইটস্পেস সহ উদ্ধৃত স্ট্রিংগুলিকে হোয়াইটস্পেস দ্বারা স্ট্রিংকে বিভক্ত করার পরে সমস্ত শব্দের মধ্যে অন্তর্নিহিত `AND` হিসাবে বিবেচনা করা হয়। |
|
টাইমস্ট্যাম্প | ISO8601 মান বিন্যাসে একটি স্ট্রিং। | "2014-10-02T15:01:23.045Z" |
তুলনা অপারেটর
এখানে তুলনা অপারেটর আছে:
- এর থেকে কম বা সমান:
"<="
- এর থেকে কম:
"<"
- এর থেকে বড় বা সমান:
">="
- এর থেকে বড়:
">"
- এর সমান নয়:
"!="
- এর সমান:
"="
- আছে:
":"
এই অপারেটরগুলি ডাবল, ইন্টিজার, বুলিয়ান, এনাম এবং টাইমস্ট্যাম্প মান প্রকারের জন্য প্রযোজ্য।
অপারেটর আছে
আপনি নিম্নলিখিত ক্ষেত্রগুলিতে বিশেষ ক্রিয়াকলাপের জন্য HAS
অপারেটর ( :
) ব্যবহার করতে পারেন:
- সাবস্ট্রিং
- যখন
HAS
অপারেটর একটি স্ট্রিং কলামের মানগুলিকে একটি স্ট্রিংয়ের সাথে তুলনা করার জন্য ব্যবহার করা হয়, তখন অপারেটরটি একটি সাবস্ট্রিং অপারেশন হিসাবে কাজ করবে। উদাহরণ স্বরূপ,name:"abcd"
এমন সব উদাহরণ প্রদান করে যেখানেname
"abcd"
ধারণকারী একটি স্ট্রিং। - অস্তিত্ব পরীক্ষা
- আপনি যখন বিশেষ অক্ষর
*
সহHAS
অপারেটর ব্যবহার করেন, তখনHAS
অপারেটর নন-নাল মান পরীক্ষা করে। উদাহরণ স্বরূপ,name:*
সমস্ত দৃষ্টান্ত প্রদান করে যেখানেname
শূন্য, অনুপস্থিত বা অনির্ধারিত নয়। - আপনি যখন অ-স্ট্রিং মান সহ
HAS
অপারেটর ব্যবহার করেন, তখন এটিEQUALS
(=
) অপারেটরের মতোই আচরণ করে। উদাহরণস্বরূপ,isCompleted:true
একইভাবে আচরণ করে যেমনisCompleted = true
। - বারবার ক্ষেত্র
আপনি
HAS
(:
) অপারেটর ব্যবহার করতে পারেন পুনরাবৃত্ত API রিসোর্স ক্ষেত্রে ফিল্টার করতে, যতক্ষণ না নিম্নলিখিতটি সত্য হয়:- ক্ষেত্র শনাক্তকারী পথ বরাবর শুধুমাত্র একটি পুনরাবৃত্তি উপাদান আছে
- ক্ষেত্রের পথের শেষ শনাক্তকারীটি স্কেলার ধরনের
নেস্টেড পুনরাবৃত্ত ক্ষেত্রগুলিতে ফিল্টারিং সমর্থিত নয়৷
এখানে একটি উদাহরণ:
item
একটিcolors
ক্ষেত্র রয়েছে, যেটিতে"red"
,"blue"
এবং"yellow"
এর মতো স্ট্রিং মান রয়েছে।-
item.colors:("red")
colors
ক্ষেত্রে"red"
মান আছে এমন সমস্ত আইটেম প্রদান করে। -
item.colors:("red" "yellow")
colors
ক্ষেত্রে"red"
এবং"yellow"
উভয়ই আছে এমন সমস্ত আইটেম ফেরত দেয়। -
item.colors:("red" OR "yellow")
colors
ক্ষেত্রে"red"
বা"yellow"
আছে এমন সমস্ত আইটেম ফেরত দেয়।
item
একটি পুনরাবৃত্তtools
ক্ষেত্রও রয়েছে যা একটি স্কেলার ক্ষেত্রshape
সহ একটি জটিল বস্তু, যার মান"square"
বা"round"
হতে পারে।-
item.tools.shape:("square")
"square"
আকৃতির টুল আছে এমন সব আইটেম ফেরত দেয়। -
item.tools.shape:("square" "round")
সমস্ত আইটেম প্রদান করে যেগুলির একটি"square"
আকৃতির টুল এবং একটি"round"
আকৃতির টুল উভয়ই রয়েছে। -
item.tools.shape:("square" OR "round")
"square"
আকৃতির টুল বা"round"
আকৃতির টুল আছে এমন সমস্ত আইটেম ফেরত দেয়।
-
জনবসতিহীন নেস্টেড ক্ষেত্র
নেস্টেড ফিল্ড হল রুট-লেভেল ফিল্ডের সাব-ফিল্ড, উদাহরণ স্বরূপ item.tools.shape
এর shape
হল items.tools
এর একটি নেস্টেড ফিল্ড।
রুট-স্তরের ক্ষেত্র ডিফল্ট থেকে মিথ্যা। নেস্টেড ক্ষেত্রগুলি ডিফল্টরূপে জনবহুল নয়।
জনসংখ্যাবিহীন নেস্টেড ক্ষেত্র সহ বস্তুগুলি নেতিবাচক ফিল্টার ( !=
) দ্বারা ফেরত দেওয়া হয় না।
এখানে একটি উদাহরণ:
item.tools
একটি size
enum আছে যার মান "SMALL"
, "MEDIUM"
, বা "LARGE"
এ সেট করা যেতে পারে।
আপনার যদি নিম্নলিখিত আইটেম থাকে:
{
"name": "item1",
"tools": {
"size": "MEDIUM"
}
},
{
"name": "item2",
"tools": {
"size": "LARGE"
}
},
{
"name": "item3"
}
নেতিবাচক ফিল্টার "tools.size != SMALL"
সহ items.list
এ একটি কল নিম্নলিখিতগুলি প্রদান করে:
{
"items": [
{
"name": "item1",
"tools": {
"size": "MEDIUM"
}
},
{
"name": "item2",
"tools": {
"size": "LARGE"
}
}
]
}
যেহেতু item.tools.size
item3
এর জন্য সেট করা হয়নি, তাই নেতিবাচক ফিল্টারটি item3
অবজেক্টটি ফেরত দেয় না।
উদাহরণ
উদাহরণ | বর্ণনা |
---|---|
externalDealId = "123456789" | externalDealId যার একটি স্ট্রিং মান আছে "123456789"। |
advertiserId:93641 | advertiserId যার একটি পূর্ণসংখ্যা মান 93641 আছে। |
isSetupComplete = true | isSetupComplete হল TRUE এর সমান। |
updateTime > "2018-02-14T11:09:19.378Z" | updateTime 02/14/2018 11:09:19.378 UTC এর পরে |
displayName = "proposal" AND proposalRevision = 3 | displayName স্ট্রিং এর "প্রস্তাব" এর একটি অভিন্ন মান রয়েছে এবং প্রস্তাবনাটি 3 এর সমান। |
displayName = "proposal" OR proposalRevision = 3 | displayName "প্রস্তাব" এর একটি স্ট্রিং মান আছে বা প্রস্তাবনাটি 3 এর সমান। |
NOT displayName = "proposal" | displayName "প্রস্তাব" এর সমান নয়। |
proposalState = (PROPOSED OR BUYER_ACCEPTED) | proposalState একটি এনাম মান রয়েছে যা হয় প্রস্তাবিত বা BUYER_ACCEPTED-এর সমান। |
proposalState = (PROPOSED AND BUYER_ACCEPTED) | proposalState এর একটি enum মান রয়েছে যা PROPOSED এবং BUYER_ACCEPTED এর সমান |
dealName = Test Deal | INVALID অভিব্যক্তি |
dealName = "Test Deal" | dealName "Test Deal" এর সমান। |
dealName = (Test Deal) | dealName "Test" এর সমান এবং "Deal" এর সমান। |
dealName = ("Test1" OR "Test2") | dealName হয় "Test1" এর সমান বা "Test2" এর সমান। |
dealName:* | dealName is not null. |
dealName:"test" | dealName সাবস্ট্রিং "পরীক্ষা" ধারণ করে। |
dealName:("AB") | dealName সাবস্ট্রিং "AB" ধারণ করে। |
dealName:(AB) | dealName সাবস্ট্রিং "A" এবং সাবস্ট্রিং "B" ধারণ করে। |
dealName:("A" OR "B" AND "C") | dealName এ হয় "A" বা "B" সাবস্ট্রিং থাকে এবং "C" সাবস্ট্রিংও থাকে |
dealName:("AB" C) | dealName এ "AB" সাবস্ট্রিং রয়েছে এবং "C" সাবস্ট্রিংও রয়েছে। |
dealName:("AB" OR CD) | dealName এ হয় "AB" বা "C" সাবস্ট্রিং থাকে এবং "D" সাবস্ট্রিংও থাকে। |
dealName:(NOT "A" B) | dealName কোনো সাবস্ট্রিং "A" থাকে না এবং সাবস্ট্রিং "B"ও থাকে। |
dealName:(NOT "A" OR "B") | dealName কোনো সাবস্ট্রিং "A" থাকে না বা সাবস্ট্রিং "B" থাকে না। |