2016-06-02 10 views
5

मुझे अपने थीसिस में एक आंकड़े के लिए गिथब पर एक बहुत बड़ी खोज करने की आवश्यकता है।github खोज सीमा परिणाम

उदाहरण के लिए, मुझे गिटहब पर बड़ी संख्या में एंड्रॉइड प्रोजेक्ट्स एक्सप्लोर करने की आवश्यकता है, लेकिन साइट खोज परिणाम को 1000 तक सीमित करती है (उदा। https://github.com/search?l=java&q=onCreate&ref=searchresults&type=Code&utf8=%E2%9C%93)। जावा गिटहब एपीआई का उपयोग करके मैंने लाइब्रेरी org.eclipse.egit.github.core.client.GitHubClient को विधि GitHubClient.searchRepositories() का उपयोग करके कोशिश की लेकिन यहां तक ​​कि परिणामों की संख्या सीमित है।

क्या कोई जानता है कि सभी परिणाम कैसे प्राप्त करें?

+2

क्या आपने [गिटहब आर्काइव] (https://www.githubarchive.org/) पर देखा है? यह लाइव गिटहब खोज एपीआई को परेशान किए बिना अपना डेटा प्राप्त करने का एक तरीका हो सकता है, जैसा कि आपने पाया है कि सीमित संख्या में परिणाम मिलते हैं, और यह भी सीमित है। –

+0

क्या आप परिणाम के माध्यम से पेज करने में सक्षम हैं? आप 1000 का पहला हिस्सा प्राप्त कर सकते हैं, अगला खंड प्राप्त कर सकते हैं, और तब तक दोहरा सकते हैं जब तक आपके पास यह सब न हो। –

+0

यह जावा प्रश्न नहीं है, या यहां तक ​​कि एक प्रोग्रामिंग प्रश्न भी है। – shmosel

उत्तर

10

खोज API के रूप में यहाँ प्रलेखित, करने के लिए (पृष्ठांकन सहित) 1000 परिणाम क्वेरी प्रति वापस आ जाएगी:

https://developer.github.com/v3/search/#about-the-search-api

हालांकि, वहाँ एक साफ चाल आप जब क्रियान्वित 1000 से अधिक परिणाम लाने के लिए इस्तेमाल कर सकते हैं है एक भंडार खोज। जब आप भंडार बनाए गए थे, तब तक आप अपनी खोज को सेगमेंट में विभाजित कर सकते थे। उदाहरण के लिए, आप पहली बार उन भंडारों की खोज कर सकते हैं जो अक्टूबर 2013 के पहले सप्ताह में बनाए गए थे, फिर दूसरे सप्ताह, फिर सितंबर, और इसी तरह।

क्योंकि आप एक संकीर्ण अवधि में खोज को सीमित कर देंगे, तो आपको शायद 1000 से कम परिणाम मिलेंगे, और इसलिए उन सभी को प्राप्त करने में सक्षम होंगे। यदि आप देखते हैं कि एक अवधि के लिए 1000 से अधिक परिणाम लौटाए जाते हैं, तो आपको अवधि को और भी सीमित करना होगा, ताकि आप सभी परिणाम एकत्र कर सकें।

https://help.github.com/articles/searching-repositories/#search-based-on-when-a-repository-was-created-or-last-updated

आप एपीआई के माध्यम से इस स्वचालित करने के लिए सक्षम होना चाहिए।

+0

यह चालाक है :) – Soubriquet

+0

ऐसा लगता है कि आप बनाई गई तारीख तक रिपोजिटरी खोज एपीआई से पूछताछ नहीं कर सकते हैं। निम्नलिखित खोज करेंगे, लेकिन सॉर्ट करें, ऑर्डर करें और बनाए गए हैं: 'curl -H 'स्वीकार करें: एप्लिकेशन/vnd.github.v3.text-match + json' 'https://api.github.com/search/ भंडार? q = भाषा: जावा और बनाया गया> = 2013-04-11T00: 00: 00Z और sort = बनाया और ऑर्डर = asc '| grep बनाया_at' – Soubriquet

+1

@ सब्सक्राइव आप उस यूआरएल को सही तरीके से नहीं बना रहे हैं। "बनाया गया" पैरामीटर क्वेरी का एक हिस्सा होना चाहिए, न कि पैरामीटर पर। –

1

यदि आप फ़ाइल नाम के साथ गितब में सभी फाइलों की खोज कर रहे हैं: आपका फ़ाइल-नाम, आप इसे a query attribute : size के साथ भी टुकड़ा कर सकते हैं।

उदाहरण के लिए, आप गीथब में test.rb नाम की सभी फाइलों की तलाश में हैं, गिथब एपीआई 11 एम से अधिक परिणाम लौटा सकता है, लेकिन आप केवल उनमें से 1000 प्राप्त कर सकते हैं क्योंकि the GitHub Search API provides up to 1,000 results for each search। एक यूआरएल जैसे: https://api.github.com/search/code?q=filename:test.rb+size:1000..1500 आकार सीमा को बदलकर अपनी खोज को टुकड़ा करने में सक्षम होगा।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/18263687) –

+0

ठीक है, मैंने अपनी पोस्ट संपादित की :) –

संबंधित मुद्दे