सूची के जवाबों को फ़िल्टर करें

Display & Video 360 API की ज़्यादातर सेवाएं, कई संसाधनों को एक साथ वापस पाने के लिए, LIST तरीका इस्तेमाल करती हैं. आम तौर पर, LIST के इन तरीकों में filter क्वेरी पैरामीटर की मदद से नतीजे फ़िल्टर किए जा सकते हैं. इस पैरामीटर का इस्तेमाल अपने एपीआई इस्तेमाल को ऑप्टिमाइज़ करने के लिए, सिर्फ़ अपनी ज़रूरत के मुताबिक करें.

इस गाइड में, filter पैरामीटर को बेहतर तरीके से इस्तेमाल करने का तरीका बताया गया है.

फ़िल्टर का स्ट्रक्चर

filter पैरामीटर की वैल्यू एक स्ट्रिंग होती है. इसमें एक या उससे ज़्यादा पाबंदियां होती हैं. इन्हें AND या OR ऑपरेटर के साथ जोड़ा जा सकता है और इन्हें ब्रैकेट में रखा जा सकता है.

पाबंदियां {field} {operator} {value} फ़ॉर्मैट में होती हैं. यहां एक उदाहरण दिया गया है:

entityStatus="ENTITY_STATUS_ACTIVE"

फ़िल्टर स्ट्रिंग में 500 से ज़्यादा वर्ण नहीं हो सकते. अगर आपकी फ़िल्टर स्ट्रिंग में 500 से ज़्यादा वर्ण हैं, तो इनमें से कोई एक काम करें:

  • लॉजिक को एक से ज़्यादा फ़िल्टर स्ट्रिंग में बांटें. इसके बाद, अलग-अलग LIST अनुरोधों का इस्तेमाल करके रिसॉर्स फिर से पाएं.
  • फ़िल्टर स्ट्रिंग से कुछ लॉजिक हटाएं. साथ ही, वापस लिए गए रिसॉर्स को स्थानीय तौर पर फ़िल्टर करने के लिए इसका इस्तेमाल करें.

तर्क को सही तरीके से लागू करने के लिए, कोट में पाबंदी वाली वैल्यू को कोट करें.

अगर क्लाइंट लाइब्रेरी का इस्तेमाल किए बिना सीधे LIST कॉल किए जा रहे हैं, तो अपनी फ़िल्टर स्ट्रिंग को यूआरएल-कोड में बदलें.

अपनी क्वेरी को फ़ॉर्मैट करने के बारे में ज़्यादा जानकारी के लिए पाबंदियों के बीच के लॉजिक देखें.

फ़िल्टर किए जा सकने वाले फ़ील्ड

LIST तरीके के हर फ़िल्टर किए जा सकने वाले फ़ील्ड, तरीके के filter पैरामीटर की जानकारी में दिए गए हैं. ज़्यादातर मामलों में, आपके पास संसाधन के स्टैंडर्ड फ़ील्ड के सबसेट पर फ़िल्टर लगाने का विकल्प होता है. बहुत कम मामलों में, ऐसे अतिरिक्त फ़ील्ड होते हैं जिनका इस्तेमाल सिर्फ़ फ़िल्टर करने के लिए किया जा सकता है.

पैरामीटर के ब्यौरे का हर फ़ील्ड, यहां तुलना किए जा सकने वाले ऑपरेटर में से कम से कम एक के साथ काम करता है:

तुलना किए जा सकने वाले ऑपरेटर
EQUALS (=) संसाधन फ़ील्ड की वैल्यू, दी गई वैल्यू के बराबर होती है.

उदाहरण: entityStatus="ENTITY_STATUS_ACTIVE"

LESS THAN OR EQUAL TO (<=) संसाधन फ़ील्ड की वैल्यू, दी गई वैल्यू से कम या उसके बराबर है. अक्सर इसका इस्तेमाल तारीख या तारीख और समय की तुलना करते समय किया जाता है.

उदाहरण: updateTime<="2023-04-01T12:00:00Z"

GREATER THAN OR EQUAL TO (>=) संसाधन फ़ील्ड की वैल्यू, दी गई वैल्यू से ज़्यादा या उसके बराबर है. अक्सर इसका इस्तेमाल तारीख या तारीख और समय की तुलना करते समय किया जाता है.

उदाहरण: updateTime>="2023-03-01T12:00:00Z"

HAS (:) संसाधन फ़ील्ड की वैल्यू में, दी गई वैल्यू शामिल है. अगर रिसॉर्स फ़ील्ड एक स्ट्रिंग है, तो यह जांच करेगा कि दी गई वैल्यू कोई मौजूदा सबस्ट्रिंग है या नहीं. अगर संसाधन फ़ील्ड एक कलेक्शन है, तो यह देखेगा कि उस ऐरे में, दी गई वैल्यू शामिल है या नहीं.

उदाहरण: lineItemIds:"1234"

अगर पैरामीटर के ब्यौरे में फ़ील्ड के लिए कोई ऑपरेटर तय नहीं किया गया है, तो सिर्फ़ EQUALS (=) ऑपरेटर का इस्तेमाल किया जा सकता है. कुछ फ़ील्ड में एक से ज़्यादा ऑपरेटर काम करते हैं.

फ़िल्टर किए जा सकने वाले कुछ फ़ील्ड, जैसे कि तारीख और समय के लिए, खास फ़ॉर्मैट का पालन करने के लिए तुलना करने लायक वैल्यू की ज़रूरत होती है. फ़ॉर्मैट की जानकारी, filter पैरामीटर की जानकारी में मौजूद फ़ील्ड के बगल में दी जाती है.

पाबंदियों के बीच का लॉजिक

अपने LIST अनुरोध के रिस्पॉन्स को छोटा या बड़ा करने के लिए, एक से ज़्यादा पाबंदियां जोड़ी जा सकती हैं.

आम तौर पर, AND और OR लॉजिकल ऑपरेटर के साथ कई पाबंदियां जोड़ी जा सकती हैं. हर LIST तरीका तय करता है कि वह किन ऑपरेटर के साथ काम करता है. कुछ तरीकों में, filter पैरामीटर में सिर्फ़ एक पाबंदी का इस्तेमाल किया जा सकता है.

AND या OR लॉजिकल ऑपरेटर वाली फ़िल्टर स्ट्रिंग बनाते समय, इन पाबंदियों को ध्यान में रखें:

का इस्तेमाल करके लिखे गए हैं.
  • AND का इस्तेमाल पाबंदियों या पाबंदियों के ग्रुप के बीच किया जाना चाहिए. ये अलग-अलग फ़ील्ड को फ़िल्टर करते हैं या एक ही फ़ील्ड को अलग-अलग फ़िल्टर करते हैं. यहाँ कुछ उदाहरण दिए गए हैं:
    • updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE"
    • updateTime>="2023-03-01T12:00:00Z" AND updateTime<="2023-04-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED")
  • OR का इस्तेमाल उन अलग-अलग पाबंदियों के बीच किया जाना चाहिए जो एक ही फ़ील्ड के हिसाब से फ़िल्टर होते हैं. यहां एक उदाहरण दिया गया है:
    • (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED") AND (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" OR lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT")
  • पाबंदियों के दो ग्रुप को एक साथ जोड़ने के लिए, OR का इस्तेमाल नहीं किया जा सकता. इसके बजाय, अलग-अलग फ़िल्टर वैल्यू वाले एक से ज़्यादा LIST अनुरोधों का इस्तेमाल करें. उदाहरण के लिए, नीचे दिए गए अलग-अलग LIST अनुरोधों का इस्तेमाल करें:

    • (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123")
    • (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")

    इन्हें एक साथ जोड़ने के लिए, OR ऑपरेटर का इस्तेमाल न करें:

    (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123") OR (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")

  • अगर आप किसी फ़िल्टर स्ट्रिंग में पाबंदियों का ग्रुप बनाने के लिए, ब्रैकेट का इस्तेमाल नहीं करते हैं, तो ये ब्रैकेट लागू हो सकते हैं. उदाहरण के लिए, नीचे दी गई फ़िल्टर स्ट्रिंग:

    updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT"

    को इस तरह समझा जाता है:

    updateTime>="2023-03-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT")