मुख्य सामग्री पर जाएं
फ़िल्टर की गई स्ट्रीम एंडपॉइंट्स उन पोस्ट्स को डिलीवर करते हैं जो स्ट्रीम पर लागू किए गए नियमों के किसी सेट से मेल खाते हैं। नियम ऑपरेटर्स से मिलकर बनते हैं, जो पोस्ट की विभिन्न विशेषताओं के आधार पर मिलान करते हैं। POST /tweets/search/stream/rules एंडपॉइंट का उपयोग करके कई नियम लागू किए जा सकते हैं। नियम जोड़ने और GET /tweets/search/stream का उपयोग करके कनेक्ट होने के बाद, केवल वे पोस्ट्स डिलीवर किए जाएंगे जो आपके नियमों से मेल खाते हैं। नियम जोड़ने या हटाने के लिए आपको डिस्कनेक्ट करने की ज़रूरत नहीं है।

नियमों की सीमाएँ

नियमों की संख्या की सीमाएँ आपके एक्सेस स्तर पर निर्भर करती हैं। विशिष्ट सीमाओं के लिए filtered stream introduction देखें।

ऑपरेटर के प्रकार: स्टैंडअलोन और संयोजन-आवश्यक

स्टैंडअलोन ऑपरेटर का उपयोग अकेले या किसी भी अन्य ऑपरेटर के साथ किया जा सकता है (उन ऑपरेटरों सहित, जिनके लिए संयोजन आवश्यक होता है)। उदाहरण के लिए, यह नियम काम करता है क्योंकि #hashtag एक स्टैंडअलोन ऑपरेटर है:
#xapiv2
संयोजन-आवश्यक ऑपरेटरों का किसी नियम में अकेले उपयोग नहीं किया जा सकता; इनका उपयोग केवल तभी किया जा सकता है जब उसमें कम से कम एक स्टैंडअलोन ऑपरेटर शामिल हो। ऐसा इसलिए है, क्योंकि केवल इन ऑपरेटरों का उपयोग करने पर बहुत बड़ी संख्या में पोस्ट्स का मिलान हो जाएगा। उदाहरण के लिए, नीचे दिए गए नियम समर्थित नहीं हैं, क्योंकि इनमें केवल संयोजन-आवश्यक ऑपरेटर शामिल हैं:
has:media
has:links OR is:retweet
अगर हम "X data" जैसे वाक्यांश के रूप में एक स्टैंडअलोन ऑपरेटर जोड़ें, तो नियम सही तरीके से काम करता है:
"X data" has:mentions (has:media OR has:links)

बूलियन ऑपरेटर और समूहीकरण

इन उपकरणों का उपयोग करके कई ऑपरेटरों को एक साथ जोड़ें:
OperatorDescriptionExample
AND (स्पेस)पोस्ट्स को दोनों शर्तों से मेल खाना चाहिएsnow day #NoSchool उन पोस्ट्स से मेल खाता है जिनमें “snow” AND “day” AND #NoSchool हो
ORपोस्ट्स को किसी एक शर्त से मेल खाना चाहिएgrumpy OR cat OR #meme उन पोस्ट्स से मेल खाता है जिनमें “grumpy” OR “cat” OR #meme हो
NOT (डैश)इस शर्त से मेल खाने वाले पोस्ट्स को बाहर रखेंcat #meme -grumpy उन पोस्ट्स से मेल खाता है जिनमें “cat” और #meme हो, लेकिन “grumpy” नहीं
Grouping (कोष्ठक)ऑपरेटरों को एक साथ समूहित करें(grumpy cat) OR (#meme has:images) दोनों में से किसी एक समूह से मेल खाता है
नकार के बारे में एक नोट
  • sample: को छोड़कर सभी ऑपरेटरों को नकारा जा सकता है
  • -is:nullcast ऑपरेटर का उपयोग हमेशा नकार के साथ किया जाना चाहिए
  • नकारे गए ऑपरेटरों का अकेले उपयोग नहीं किया जा सकता
  • समूहित ऑपरेटरों को नकारें नहीं। skiing -(snow OR day OR noschool) के बजाय skiing -snow -day -noschool का उपयोग करें

संचालन का क्रम

जब AND और OR को एक साथ मिलाया जाता है:
  1. AND लॉजिक से जुड़े ऑपरेटर पहले संयोजित किए जाते हैं
  2. उसके बाद, OR लॉजिक से जुड़े ऑपरेटर लागू किए जाते हैं
उदाहरण:
Queryइस प्रकार मूल्यांकित किया जाता है
apple OR iphone ipadapple OR (iphone ipad)
ipad iphone OR android(iphone ipad) OR android
अस्पष्टता से बचने के लिए, कोष्ठकों का उपयोग करें:
(apple OR iphone) ipad
iphone (ipad OR android)

विराम चिह्न, उच्चारण चिह्न, और केस संवेदनशीलता

उच्चारण चिह्न: उच्चारण चिह्नों वाले फ़िल्टर की गई स्ट्रीम नियम केवल उन पोस्ट्स से मेल खाते हैं जिनमें वही उच्चारण चिह्न शामिल हों। उदाहरण के लिए, diacrítica diacrítica से मेल खाता है, लेकिन diacritica से नहीं। केस संवेदनशीलता: सभी ऑपरेटर केस-असंवेदनशील हैं। नियम cat cat, CAT, और Cat से मेल खाता है।
पोस्ट्स खोजें का व्यवहार अलग हैजब खोज क्वेरी बनाई जाती हैं, तो उच्चारण चिह्न वाले कीवर्ड उन पोस्ट्स से मेल खाते हैं जिनमें उच्चारण चिह्न हों भी या न हों। उदाहरण के लिए, Diacrítica Diacrítica और Diacritica दोनों से मेल खाता है।

Quote Tweet मिलान

फ़िल्टर की गई स्ट्रीम का उपयोग करते समय, ऑपरेटर Quote Tweet की सामग्री और उद्धृत मूल पोस्ट की सामग्री—दोनों पर मैच करते हैं।
पोस्ट्स खोजें अलग तरीके से काम करता है—यह सिर्फ़ Quote Tweet की सामग्री से मैच करता है, मूल पोस्ट से नहीं।

विशिष्टता और दक्षता

किसी एक कीवर्ड या हैशटैग जैसे व्यापक ऑपरेटरों का उपयोग करने की अनुशंसा नहीं की जाती—यह बहुत बड़ी संख्या में पोस्ट्स से मेल खाएगा और आपके कनेक्शन की क्षमता को जल्दी खपा देगा।
प्रभावी नियम बनाने के लिए सुझाव:
  1. विशिष्ट रूप से शुरू करें, फिर दायरा बढ़ाएँ — ऐसे लक्षित नियम बनाएँ जो प्रासंगिक परिणाम लौटाएँ
  2. एकाधिक ऑपरेटरों का उपयोग करें — परिणामों को सीमित करने के लिए ऑपरेटरों को मिलाएँ
  3. अपने कैरेक्टर काउंट पर नज़र रखें — पूरी rule string सीमा में गिनी जाती है
उदाहरण के तौर पर प्रगति:
# बहुत व्यापक - प्रतिदिन 200,000+ पोस्ट्स
happy

# बेहतर - भाषा फ़िल्टर और बहिष्करण जोड़ता है
(happy OR happiness) lang:en -birthday -is:retweet

# और भी बेहतर - 59 अक्षर, अधिक विशिष्ट
(happy OR happiness) place_country:GB -birthday -is:retweet

चरणबद्ध तरीके से नियम बनाना

चरण 1: एक बुनियादी नियम से शुरू करें

happy OR happiness

चरण 2: परिणामों के आधार पर जाँचें और दायरा सीमित करें

हमें कई भाषाओं में पोस्ट्स दिखाई दिए। एक भाषा फ़िल्टर जोड़ें:
(happy OR happiness) lang:en
हमें जन्मदिन की शुभकामनाएँ मिल रही हैं। इन्हें और Retweets को बाहर रखें:
(happy OR happiness) lang:en -birthday -is:retweet

चरण 3: बेहतर कवरेज के लिए दायरा बढ़ाएँ

हम अधिक भावनात्मक संकेतों को शामिल करना चाहते हैं। संबंधित कीवर्ड जोड़ें:
(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet
छुट्टियों से जुड़ी पोस्ट्स दिखाई दे रही हैं। इन्हें बाहर रखें:
(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet -holidays

नियम जोड़ना और हटाना

नियम जोड़ने या हटाने के लिए POST /2/tweets/search/stream/rules का इस्तेमाल करें।

नियम जोड़ना

value (नियम) और वैकल्पिक tag (मिलान करने वाले पोस्ट्स की पहचान के लिए) के साथ add JSON बॉडी सबमिट करें:
curl -X POST "https://api.x.com/2/tweets/search/stream/rules" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "add": [
      {"value": "cat has:media", "tag": "cats with media"},
      {"value": "cat has:media -grumpy", "tag": "happy cats with media"},
      {"value": "meme", "tag": "funny things"},
      {"value": "meme has:images"}
    ]
  }'

नियम हटाना

हटाने के लिए नियमों की ID के साथ delete JSON body सबमिट करें:
curl -X POST "https://api.x.com/2/tweets/search/stream/rules" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "delete": {
      "ids": [
        "1165037377523306498",
        "1165037377523306499"
      ]
    }
  }'

नियमों के उदाहरण

प्राकृतिक आपदा को ट्रैक करना

ह्यूरिकेन हार्वी से संबंधित मौसम एजेंसियों की पोस्ट्स का मिलान करें:
{
  "value": "-is:retweet has:geo (from:NWSNHC OR from:NHC_Atlantic OR from:NWSHouston OR from:NWSSanAntonio OR from:USGS_TexasRain OR from:USGS_TexasFlood OR from:JeffLindner1)",
  "tag": "Hurricane Harvey - weather agencies with geo"
}

#nowplaying के लिए भाव विश्लेषण

सकारात्मक भाव:
{
  "value": "#nowplaying (happy OR exciting OR excited OR favorite OR fav OR amazing OR lovely OR incredible) (place_country:US OR place_country:MX OR place_country:CA) -horrible -worst -sucks -bad -disappointing",
  "tag": "#nowplaying positive"
}
नकारात्मक भावना:
{
  "value": "#nowplaying (horrible OR worst OR sucks OR bad OR disappointing) (place_country:US OR place_country:MX OR place_country:CA) -happy -exciting -excited -favorite -fav -amazing -lovely -incredible",
  "tag": "#nowplaying negative"
}

पोस्ट एनोटेशन का उपयोग

context: ऑपरेटर का उपयोग करके चित्रों सहित पालतू जानवरों (बिल्लियों को छोड़कर) के बारे में जापानी पोस्ट्स खोजें: पहले, domain.entity IDs की पहचान करने के लिए tweet.fields=context_annotations के साथ पोस्ट लुकअप का उपयोग करें:
  • बिल्लियाँ: domain 66, entity 852262932607926273
  • पालतू जानवर: domain 65, entity 852262932607926273
{
  "value": "context:65.852262932607926273 -context:66.852262932607926273 -is:retweet has:images lang:ja",
  "tag": "Japanese pets with images - no cats"
}

अगले चरण

ऑपरेटर संदर्भ

उपलब्ध ऑपरेटरों की संपूर्ण सूची

फ़िल्टर की गई स्ट्रीम त्वरित शुरुआत

अपनी स्ट्रीम से कनेक्ट करें

नमूना कोड

कई भाषाओं में कोड के उदाहरण