- Freebase Suggest के बारे में
- अपनी साइट में Freebase का सुझाव जोड़ना
- कॉन्फ़िगरेशन के विकल्प
- सीएसएस में बदलाव करना
- इवेंट के काम करने का तरीका
- ज़्यादा जानकारी और अक्सर पूछे जाने वाले सवाल
- उदाहरण और रेसिपी
Freebase के बारे में सुझाव
Freebase Suggest एक jQuery प्लग इन है, जो आपकी साइट पर खोज बॉक्स में Freebase विषय के ऑटोकंप्लीट की सुविधा जोड़ता है. उपयोगकर्ता टेक्स्ट लिखना शुरू करते हैं और विजेट Freebase.com पर लाखों विषयों, लोगों या जगहों या जानवरों के किसी भी प्रकार से मिलते-जुलते सुझाव दिखाता है. विषय के हिसाब से अलग-अलग किए जाने वाले एलिमेंट से, उपयोगकर्ता को सही आइटम चुनने में मदद मिलती है जिसकी पहचान Freebase आईडी से की गई है.
सुविधाएं
- क्रॉस ब्राउज़र - jQuery पर आधारित, IE7+, FF2+, Safari 3+ और Chrome पर टेस्ट किया गया (कम से कम jquery वर्शन 1.4.4 है)
- क्रॉस-डोमेन. JSONP की वजह से किसी प्रॉक्सी सर्वर की ज़रूरत नहीं पड़ती.
- gstatic.com पर Google ने होस्ट किया
- मुफ़्त! (स्टैंडर्ड Freebase की शर्तें और Google Developer API की शर्तें लागू होती हैं.)
जंगल में फ़्रीबेस सुझाव
फ़्रीबेस सुझाव का उपयोग करने के लिए जानी जाने वाली साइटें:
- WSJ बुक की समीक्षाएं
- ContentTagger.org - अभिभावकों की मदद करने वाले समाचार पत्र से डेमो टैग करना
- geolocation.ws - फ़ोटो को Freebase इकाइयों में टैग करें
Freebase Suggest का उपयोग क्यों करें?
- ऑटोकंप्लीट सुविधा की मदद से, आपके उपयोगकर्ता कम डेटा टाइप करते हैं.
- डेटा एंट्री मज़ेदार और सही है!
- विषय फ़्लायआउट में इमेज और जानकारी का इस्तेमाल करके, अपने उपयोगकर्ताओं के लिए सामग्री पर पड़ने वाले असर को कम करें.
- टेक्स्ट कीवर्ड के बजाय मज़बूत आइडेंटिफ़ायर का इस्तेमाल करें. नाम और कोटेशन &Sting" साफ़ नहीं है, लेकिन Freebase आईडी
/en/sting
और/en/sting_1959
नहीं हैं. - एक ही इकाई के लिए डुप्लीकेट नाम न डालें. पफ़ डैडी, पी. डिडी, शॉन कॉम्ब्स सभी
/en/sean_combs
का संदर्भ देते हैं.
अपनी वेबसाइट में Freebase का सुझाव जोड़ना
अपने वेबपेज पर Freebase का सुझाव जोड़ने के लिए, अपनी वेबसाइट के सोर्स में यह कोड शामिल करें. आप Freebase Suggest की सुविधाओं को बढ़ाने के लिए एक API कुंजी भी प्राप्त और उपयोग कर सकते हैं.
अपनी वेबसाइट में शामिल करने के लिए कोड
अपने एचटीएमएल दस्तावेज़ के <head>
में इन्हें शामिल करें:
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.css" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script type="text/javascript" src="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.js"></script> <script type="text/javascript"> $(function() { $("#myinput").suggest({filter:'(all type:/film/director)'}); }); </script>
इसके बाद, अपने दस्तावेज़ <body>
में इस तरह के इनपुट फ़ील्ड का इस्तेमाल करें:
<input type="text" id="myinput"/>
एपीआई कुंजी पाना
एपीआई कुंजी पाने के बाद, आपके ऐप्लिकेशन को सुझाव के अनुरोध करने की अनुमति मिल जाती है. एपीआई कुंजी के बिना, विजेट कुछ खास जांच के लिए काम करेगा. कुंजी पाने के लिए, हमारे शुरू करें पेज पर दिए गए निर्देशों का पालन करें.
कुंजी मिलने के बाद, उसे Freebase Suggest की मदद से कुछ ऐसा पाएं:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
कॉन्फ़िगरेशन विकल्प
नीचे दी गई टेबल, Freebase Suggest के कॉन्फ़िगरेशन विकल्पों के बारे में बताती है.
नाम | टाइप | डिफ़ॉल्ट | जानकारी |
---|---|---|---|
बेहतर | बूलियन | सही | अगर सही है, तो Freebase Suggest इनपुट में इनलाइन name:value जोड़े को पार्स और हैंडल करेगा, ताकि फ़िल्टर के लिए एक और कंस्ट्रेंट के तौर पर इनका इस्तेमाल किया जा सके. उदाहरण के लिए, 'bob type:artist contributed_to:"Love and Theft"' के लिए, एक और फ़िल्टर कंस्ट्रेंट है, जिसे '(all type:artist contributed_to:"Love and Theft")' ने खोजा है. इसके अलावा, जब यह बेहतर हो, तो Freebase Suggest की मदद से Freebase आईडी और एमआईडी को पहचाना जाएगा. इससे कोई भी व्यक्ति अपने आईडी या मीआईडी के ज़रिए सीधे इकाई को खोज पाएगा. |
सटीक | बूलियन | गलत | अगर यह सही है, तो इससे पता चलता है कि सर्च एपीआई सिर्फ़ पूरी तरह मिलान (इनपुट में क्या है's) दिखाता है. यह वैल्यू साफ़ तौर पर Search API को भेजी जाती है. |
फ़िल्टर करें | स्ट्रिंग | शून्य | ऐसे डिफ़ॉल्ट खोज फ़िल्टर कंस्ट्रेंट के बारे में बताएं जिसे Search API में, फ़िल्टर पैरामीटर के तौर पर साफ़ तौर पर भेजा जाएगा. उदाहरण के लिए, Freebase Suggest को सिर्फ़ कॉलेज और/या विश्वविद्यालयों पर खोजने के लिए सीमित करने के लिए, फ़िल्टर के रूप में (all type:/education/university) " का इस्तेमाल करें. खोज के लिए उपलब्ध फ़िल्टर की पूरी सूची देखने के लिए, Search API या टेक्स्ट के बारे में कंस्ट्रेंट देखें. |
बटन | स्ट्रिंग | शून्य | service_url + service_path के डिफ़ॉल्ट सर्च एपीआई के लिए एपीआई कुंजी दें. आप इसे एपीआई कंसोल से पा सकते हैं. |
lang | स्ट्रिंग | शून्य | lang पैरामीटर, भाषा कोड की कॉमा-सेपरेटेड लिस्ट को स्वीकार करता है. इसकी वजह से, खोज के लिए सभी भाषाओं में खोज की जाती है और नतीजों को सूची में दी गई पहली भाषा में रैंक किया जाता है. साथ ही, सूची की पहली भाषा में दिखाया जाता है, जिसमें इकाई का नाम होता है. फ़िलहाल, 18 भाषाएं इस्तेमाल की जा सकती हैं: en (अंग्रेज़ी), es (spanish), fr (फ़्रेंच), de (जर्मन), इसे (इटैलियन), pt (portuguese), zh (चिनी), ja (japanise), ko (korean), ru (rusian), sv (swed,), da ( आरामदायक, ), (),) आम तौर पर, अंग्रेज़ी की सबसे ज़्यादा कवरेज होती है और यह डिफ़ॉल्ट भाषा है. यह वैल्यू साफ़ तौर पर Search API को भेजी जाती है. |
स्कोरिंग | स्ट्रिंग | शून्य | scoring पैरामीटर से यह तय किया जा सकता है कि फ़ाइनल स्कोर तय करने के लिए, प्रासंगिकता के स्कोर से जुड़े कौनसे कॉम्पोनेंट इस्तेमाल किए जाएं. यह वैल्यू साफ़ तौर पर Search API को भेजी जाती है.
|
स्पेल | स्ट्रिंग | always |
मान्य वैल्यू always , no_results , no_spelling हैं. अगर वर्तनी का अनुरोध किया जाता है और खोज वर्तनी में सुधार दिखाती है, तो Freebase Suggest, सुझाव सूची में सुधार दिखाएगा. यह वैल्यू खोज सेवा में साफ़ तौर पर भेजी जाती है. |
फ़्लायआउट | बूलियन, bottom |
सही | यह तय करता है कि होवर पर फ़्लायआउट विवरण दिखाया जाए या नहीं. अगर bottom है, तो 'सुझाव दें' सूची में सबसे नीचे फ़्लाइआउट दिखाएं. अगर इनपुट बॉक्स के ऊपर 'सुझाव की सूची' दिखाई जाती है, तो सूची के ऊपर फ़्लायआउट दिखाई देता है. अगर सही है, तो 'डिस्कवर', सूची की बाईं या दाईं ओर फ़्लाआउट दिखाने की पूरी कोशिश करेगा.
|
सुझाव_नया | स्ट्रिंग | शून्य | सुझाव की सूची के नीचे दिखाया जाने वाला टेक्स्ट. चुने जाने पर, एक fb-select-new ट्रिगर होता है. |
css | अस्वीकार करें | Freebase के सुझाए गए अलग-अलग एलिमेंट के लिए इस्तेमाल किए गए डिफ़ॉल्ट सीएसएस क्लास के नामों को ओवरराइट करें. जानकारी के लिए, सीएसएस में बदलाव करना देखें. | |
css_प्रीफ़िक्स | स्ट्रिंग | शून्य | आप 'सुझाई गई चीज़ें' के क्लास के नाम के आगे कोई प्रीफ़िक्स जोड़ सकते हैं. उदाहरण के लिए, अगर css_prefix "foo- " तो कंटेनर के नाम "foo-fbs-pane " और "foo-fbs-flyoutpane " होंगे. |
शो का आईडी | बूलियन | सही | खोज के नतीजों में दिखने वाली 'notable ' वैल्यू दिखाता है. हालांकि, अगर यह उपलब्ध नहीं है और सही है, तो वह आइटम का आईडी दिखाता है. |
Service_url | स्ट्रिंग | वैल्यू https://www.googleapis.com/freebase/v1 है |
यह 'सेवा' का बुनियादी यूआरएल है. |
Service_path | स्ट्रिंग | /search |
service_url + service_path = 'सुझाव दें' सेवा का यूआरएल. |
Flyout_service_url | स्ट्रिंग | शून्य | फ़्लायआउट सेवा का मूल URL. अगर कोई वैल्यू नहीं है, तो डिफ़ॉल्ट रूप से service_url लागू हो जाती है. |
Flyout_service_path | स्ट्रिंग | वैल्यू /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} है |
flyout_service_url + flyout_service_path = फ़्लाईआउट सेवा के लिए यूआरएल. '${id} ' और '{key} ' को होवर किए गए आइटम आईडी और API कुंजी से बदल दिया जाता है. |
Fly_image_service_url | स्ट्रिंग | शून्य | फ़्लाईआउट में इमेज का बेस यूआरएल. अगर कोई वैल्यू नहीं है, तो डिफ़ॉल्ट रूप से service_url लागू हो जाती है. |
Fly_image_service_path | स्ट्रिंग | वैल्यू /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png है |
flyout_image_service_url + flyout_image_service_path = इमेज सेवा का यूआरएल. '${id} ' और '{key} ' को होवर किए गए आइटम आईडी और API कुंजी से बदल दिया जाएगा. |
Flyout_parent | स्ट्रिंग (jQuery सिलेक्टर) | शून्य | डिफ़ॉल्ट रूप से, फ़्लायआउट कंटेनर को दस्तावेज़ के मुख्य हिस्से में जोड़ा जाता है और उसे पूरी तरह रखा जाता है. flyout_parent एक अलग अभिभावक तय करता है और फ़्लायआउट को बिल्कुल स्थान नहीं दिया जाएगा. |
अलाइन करें | स्ट्रिंग | शून्य | अगर align सेट नहीं है, तो सुझाव सूची को दस्तावेज़ में इनपुट की जगह के हिसाब से, "left" या "right" के आधार पर अलाइन किया जाता है. इस व्यवहार को बदलने और इसके अलाइनमेंट को साफ़ तौर पर सेट करने के लिए, align को "left " या "right " पर सेट करें. |
स्थिति | कलेक्शन[4](स्ट्रिंग) | ["सुझाव पाने के लिए लिखना शुरू करें...", "खोज रहा है...", "सूची से कोई आइटम चुनें:", "माफ़ करें, कोई गड़बड़ी हुई. कृपया बाद में कोशिश करें"] | सुझाव के चार अलग-अलग चरणों में दिखने वाले स्टेटस मैसेज; [0] जब इनपुट बॉक्स खाली होता है और फ़ोकस करता है. [1] नतीजे पाने के दौरान, [2] नतीजे दिखाते समय, [3] जब 'सुझाव दें' सेवा में कोई गड़बड़ी होती है, तो [3]. आप चार अलग-अलग चरणों से जुड़ी स्ट्रिंग की अलग-अलग श्रेणी में पास करके, इन डिफ़ॉल्ट स्थिति मैसेज को बदलें. |
अभिभावक | स्ट्रिंग (jQuery सिलेक्टर) | शून्य | डिफ़ॉल्ट रूप से, 'सुझाव की सूची' दस्तावेज़ के मुख्य हिस्से में होती है और उसे पूरी तरह से रखा जाता है. किसी अलग अभिभावक को बताने के लिए parent का इस्तेमाल करें. ऐसा करने पर, सूची में पूरी जगह नहीं दिखेगी. |
ऐनिमेट करें | बूलियन | गलत | अगर सही है, तो सुझाव सूची का दिखाया जाना jQuery स्लाइडडाउन इफ़ेक्ट का इस्तेमाल करके ऐनिमेट किया जाएगा. |
Xhr_delay | इंटिजर (मिलीसेकंड) | 200 |
यह नतीजे मिलने में देरी की जानकारी देता है. यह ऐसे मामले में फ़ायदेमंद होता है जहां mql_filters मुश्किल होते हैं. साथ ही, 'एपीआई' को हार्डकोड किए गए जवाब के मुकाबले जवाब देने में ज़्यादा या मिलता-जुलता समय लग सकता है. इससे उपयोगकर्ता अनुभव कुछ हद तक खराब हो सकता है और बेवजह लोड हो सकता है. |
zइंडेक्स | पूर्णांक | शून्य | बाहरी ज़्यादातर कंटेनर (fbs-pane , fbs-flyoutpane ) का z-इंडेक्स सेट करता है. डायलॉग बॉक्स में Freebase का सुझाव देने की सुविधा का इस्तेमाल करते समय इसका इस्तेमाल किया जा सकता है, ताकि इस पर सबसे ऊपर सुझाव के एलिमेंट दिखें. |
सीएसएस में बदलाव करना
Freebase Suggest के ज़रिए उपयोग की जाने वाली डिफ़ॉल्ट सीएसएस क्लास को css कॉन्फ़िगरेशन विकल्प का उपयोग करके सीएसएस श्रेणी नामों के लिए वैकल्पिक मानों के मैप से पास किया जा सकता है. नीचे दी गई टेबल में, डिफ़ॉल्ट सीएसएस में मौजूद क्लास के बारे में बताया गया है.
पैन | सुझाव सूची का बाहरी कंटेनर.
डिफ़ॉल्ट: ' |
list | सुझाव सूची.
डिफ़ॉल्ट: ' |
सामान | सूची आइटम सुझाएं.
डिफ़ॉल्ट: ' |
item_name | वह एलिमेंट जिसमें आइटम का नाम है.
डिफ़ॉल्ट: ' |
चुना गया | हाइलाइट किया गया मौजूदा/चुना गया आइटम. डिफ़ॉल्ट: 'fbs-selected '. |
स्टेटस | स्थिति मैसेज वाला एलिमेंट. डिफ़ॉल्ट: 'fbs-status '. |
item_type | ऐसा एलिमेंट जिसमें ध्यान देने लायक आइटम है. डिफ़ॉल्ट: 'fbs-item-type '. |
फ़्लाइआउटपैन | फ़्लायआउट बाहरी कंटेनर.
डिफ़ॉल्ट: ' |
उदाहरण के लिए:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
इवेंट के काम करने का तरीका
Freebase का सुझाव, दिए गए इनपुट के संदर्भ में इन इवेंट को ट्रिगर करता है.
fb-select
- जब 'सुझाव दें' सूची से कोई आइटम चुना जाता है. इस इवेंट के साथ एक डेटा ऑब्जेक्ट होता है, जहां data.name
और data.id
, चुने गए आइटम का नाम और आईडी दिखाते हैं.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
- suggest_new
विकल्प के चालू होने पर, यह इवेंट तब ट्रिगर होता है, जब सुझाव_नया आइटम चुना जाता है. इवेंट के साथ इनपुट वैल्यू डालें.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
अक्सर पूछे जाने वाले सवाल और ज़्यादा जानकारी
Freebase Developers Google Group या समस्याएं सूची ("Search/Suggest" कॉम्पोनेंट चुनें) में सवाल, गड़बड़ी की रिपोर्ट, और सुझाव का बहुत स्वागत है.
- मैंने अभी-अभी एक नया विषय बनाया है, लेकिन यह 'सुझाव' में नहीं दिख रहा है - क्या हो रहा है?
Freebase Suggest अपने परिणाम देने के लिए Search API का उपयोग करता है और यह रीयल-टाइम में अपडेट होता है. नए विषय आम तौर पर एक मिनट में दिखने लगते हैं. हालांकि, अगर सिस्टम ज़्यादा लोड वाला हो, तो इसमें ज़्यादा समय लग सकता है.
उदाहरण और रेसिपी
- Freebase Suggest रेसिपी - हमारे विकी पर सुझाएं का उपयोग करने के बारे में अपने सुझाव शेयर करें.
बुनियादी इस्तेमाल
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
नया सुझाएं
$("#example2") .suggest({ "suggest_new": "Click on me if you don't see anything in the list" }) .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); }) .bind("fb-select-new", function(e, val) { alert("Suggest new: " + val); });
फ़िल्टर का इस्तेमाल करके कंस्ट्रेंट करने के सुझाव
स्टीवन स्पीलबर्ग के निर्देश वाली फ़िल्में सुझाएं.
$("#example5") .suggest({ "filter": "(all type:/film/film contributor:\"Steven Spielberg #directed_by\")" }) .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
टेक्स्ट बॉक्स से फ़िल्टर करना
नतीजों को फ़िल्टर करने के लिए, किसी भी फ़िल्टर कंस्ट्रेंट को सीधे 'सुझाव बॉक्स' में टाइप करें. उदाहरण के लिए, बागबानी पर किताबें खोजने के लिए:
gardening type:/book/book gardening type:book
असल में, अपने नतीजों को फ़िल्टर करने के लिए, किसी भी Search मेटास्कीमा के कंस्ट्रेंट का इस्तेमाल किया जा सकता है. उदाहरण के लिए, उन सभी लोगों को खोजने के लिए जिन्हें "contributed_to
" फ़िल्म और कोट;निजी रयान" सेव करने की कोशिश करें:
contributed_to:"Saving Private Ryan" type:/people/person
जैसा कि कॉन्फ़िगरेशन के विकल्पों में बताया गया है, lang
, scoring
, spell
, और exact
को साफ़ तौर पर Search API को पास किया जाता है. इन्हें इनलाइन भी ओवरराइट किया जा सकता है. उदाहरण के लिए, अगर फ़्रीबेस सुझाव lang:"en"
से शुरू किया गया है और आपको फ़्रेंच नाम भी खोजने हैं, तो यह आज़माएं:
babar lang:fr,en
ज़्यादा फ़िल्टर और खोज की पाबंदियों के बारे में जानने के लिए, कृपया खोज कुकबुक देखें.