Google Cloud Search को सेट अप करके, अपने उपयोगकर्ताओं को वेब कॉन्टेंट दिखाया जा सकता है. इसके लिए, Cloud Search इंडेक्सर प्लग इन को Apache Nutch के लिए डिप्लॉय करें. Apache Nutch, ओपन सोर्स वेब क्रॉलर है.
वेब क्रॉल शुरू करने पर, Apache Nutch वेब को क्रॉल करता है. साथ ही, दस्तावेज़ के कॉन्टेंट के ओरिजनल बाइनरी (या टेक्स्ट) वर्शन को Google Cloud Search API पर अपलोड करने के लिए, इंडेक्सर प्लग इन का इस्तेमाल करता है. Cloud Search API, कॉन्टेंट को इंडेक्स करता है और आपके उपयोगकर्ताओं को नतीजे दिखाता है.
विचार करने वाली ज़रूरी बातें
इंडेक्सर प्लग इन को डिप्लॉय करने से पहले, इन बातों का ध्यान रखें.
सिस्टम की ज़रूरतें
| सिस्टम की ज़रूरतें | |
|---|---|
| ऑपरेटिंग सिस्टम | सिर्फ़ Linux:
|
| सॉफ़्टवेयर |
|
| Apache Tika के दस्तावेज़ के टाइप | Apache Tika 1.18 के साथ काम करने वाले दस्तावेज़ के फ़ॉर्मैट |
इंडेक्सर प्लग इन को डिप्लॉय करना
यहां दिए गए चरणों में, इंडेक्सर प्लग इन को इंस्टॉल करने और उसके कॉम्पोनेंट को कॉन्फ़िगर करने का तरीका बताया गया है. ऐसा करके, यूआरएल को क्रॉल किया जा सकता है और Cloud Search को नतीजे दिखाए जा सकते हैं.
ज़रूरी शर्तें
इंडेक्सर प्लग इन को डिप्लॉय करने से पहले, Cloud Search और डेटा सोर्स को कनेक्ट करने के लिए ज़रूरी जानकारी इकट्ठा करें:
- Google Workspace की निजी कुंजी (जिसमें सेवा खाते का आईडी शामिल होता है). निजी कुंजी पाने के बारे में जानकारी के लिए, Cloud Search API को ऐक्सेस करने की सुविधा कॉन्फ़िगर करना लेख पढ़ें.
- Google Workspace के डेटा सोर्स का आईडी. डेटा सोर्स का आईडी पाने के बारे में जानकारी के लिए, खोज के लिए डेटा सोर्स जोड़ना लेख पढ़ें.
पहला चरण: प्लग इन सॉफ़्टवेयर और Apache Nutch को बनाना और इंस्टॉल करना
GitHub से इंडेक्सर प्लग इन के डेटा स्टोर करने की जगह को क्लोन करें.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
इंडेक्सर प्लग इन का वह वर्शन देखें जिसका आपको इस्तेमाल करना है:
$ git checkout tags/v1-0.0.5
इंडेक्सर प्लग इन बनाएं.
$ mvn package
प्लस इन बनाते समय, जांच को स्किप करने के लिए,
mvn package -DskipTestsका इस्तेमाल करें.Apache Nutch 1.15 डाउनलोड करें और Apache Nutch को इंस्टॉल करने के निर्देशों का पालन करें.
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zipको किसी फ़ोल्डर में एक्सट्रैक्ट करें.plugins/indexer-google-cloudsearchफ़ोल्डर को Apache Nutchpluginsफ़ोल्डर (apache-nutch-1.15/plugins) में कॉपी करें.
दूसरा चरण: इंडेक्सर प्लग इन को कॉन्फ़िगर करना
प्लस इन को कॉन्फ़िगर करने के लिए, plugin-configuration.properties नाम की फ़ाइल बनाएं.
Cloud Search के डेटा सोर्स को ऐक्सेस करने के लिए, कॉन्फ़िगरेशन फ़ाइल में ये पैरामीटर शामिल होने चाहिए.
| सेटिंग | पैरामीटर |
| डेटा सोर्स का आईडी | api.sourceId = 1234567890abcdef
ज़रूरी है. Cloud Search का वह सोर्स आईडी जिसे Google Workspace के एडमिन ने इंडेक्सर प्लग इन के लिए सेट अप किया है. |
| सेवा खाता | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
ज़रूरी है. Cloud Search के सेवा खाते की वह कुंजी फ़ाइल जिसे Google Workspace के एडमिन ने इंडेक्सर प्लग इन को ऐक्सेस करने के लिए बनाया है. |
यहां दिए गए उदाहरण में, कॉन्फ़िगरेशन फ़ाइल का सैंपल दिखाया गया है:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
कॉन्फ़िगरेशन फ़ाइल में ऐसे पैरामीटर भी शामिल हो सकते हैं जिनसे प्लग इन के काम करने के तरीके को कंट्रोल किया जा सकता है. जैसे, प्लग इन, Cloud Search API में डेटा कैसे पुश करता है. साथ ही, यह मेटाडेटा और स्ट्रक्चर्ड डेटा को कैसे भरता है. इन पैरामीटर के बारे में जानने के लिए, देखें Google की ओर से दिए गए कनेक्टर के पैरामीटर.
तीसरा चरण: Apache Nutch को कॉन्फ़िगर करना
conf/nutch-site.xmlखोलें और ये पैरामीटर जोड़ें:सेटिंग पैरामीटर प्लस इन में शामिल हैं plugin.includes = textज़रूरी है. इस्तेमाल किए जाने वाले प्लग इन की सूची. इसमें कम से कम ये प्लग इन शामिल होने चाहिए:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlमें डिफ़ॉल्ट वैल्यू दी गई है. हालांकि, आपको इसमेंindexer-google-cloudsearchको मैन्युअल तरीके से जोड़ना होगा.मेटाटैग के नाम metatags.names = textज़रूरी नहीं. कॉमा से अलग की गई टैग की सूची. ये टैग, संबंधित डेटा सोर्स स्कीमा में मौजूद प्रॉपर्टी से मैप होते हैं. ज़्यादा जानने के लिए, Nutch-parse metatags लेख पढ़ें.
यहां दिए गए उदाहरण में,
nutch-site.xmlमें किए जाने वाले ज़रूरी बदलाव दिखाए गए हैं:<property> <name>plugin.includes</name> <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more|metadata)|query-(basic|site|url|lang)|indexer-google-cloudsearch|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf|metatags)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value> </property>conf/index-writers.xmlखोलें और यह सेक्शन जोड़ें:<writer id="indexer_google_cloud_search_1" class="org.apache.nutch.indexwriter.gcs.GoogleCloudSearchIndexWriter"> <parameters> <param name="gcs.config.file" value="path/to/sdk-configuration.properties"/> </parameters> <mapping> <copy /> <rename /> <remove /> </mapping> </writer><writer>सेक्शन में ये पैरामीटर शामिल होते हैं:सेटिंग पैरामीटर Cloud Search की कॉन्फ़िगरेशन फ़ाइल का पाथ gcs.config.file = pathज़रूरी है. Cloud Search की कॉन्फ़िगरेशन फ़ाइल का पूरा (ऐब्सलूट) पाथ.
अपलोड करने का फ़ॉर्मैट gcs.uploadFormat = textज़रूरी नहीं. वह फ़ॉर्मैट जिसका इस्तेमाल प्लग इन, दस्तावेज़ के कॉन्टेंट को Cloud Search API पर पुश करने के लिए करता है. मान्य वैल्यू ये हैं:
raw: ओरिजनल, बिना बदले हुए कॉन्टेंट को पुश करता है.text: एक्सट्रैक्ट किए गए टेक्स्ट वाले कॉन्टेंट को पुश करता है. डिफ़ॉल्ट वैल्यू होती हैraw.
चौथा चरण: वेब क्रॉल को कॉन्फ़िगर करना
वेब क्रॉल शुरू करने से पहले, उसे कॉन्फ़िगर करें, ताकि उसमें सिर्फ़ वह जानकारी शामिल हो जिसे आपका संगठन उपलब्ध कराना चाहता है. ज़्यादा जानकारी के लिए, Nutch का ट्यूटोरियल देखें.
स्टार्ट यूआरएल सेट अप करें.
स्टार्ट यूआरएल से यह कंट्रोल किया जाता है कि वेब क्रॉलर, आपके कॉन्टेंट को कहां से क्रॉल करना शुरू करता है. क्रॉलर को उन सभी कॉन्टेंट तक पहुंचने में मदद मिलनी चाहिए जिन्हें आपको लिंक फ़ॉलो करके शामिल करना है.
स्टार्ट यूआरएल सेट अप करने के लिए:
- Nutch की इंस्टॉलेशन डायरेक्ट्री पर जाएं:
$ cd ~/nutch/apache-nutch-X.Y/
- यूआरएल के लिए डायरेक्ट्री बनाएं:
$ mkdir urls
seed.txtनाम की फ़ाइल बनाएं और हर लाइन में एक यूआरएल डालें.
- Nutch की इंस्टॉलेशन डायरेक्ट्री पर जाएं:
फ़ॉलो करने और फ़ॉलो न करने के नियम सेट अप करें.
फ़ॉलो यूआरएल के नियमों से यह कंट्रोल किया जाता है कि क्रॉलर किन यूआरएल को इंडेक्स करता है. फ़ॉलो न करने के नियमों के तहत, यूआरएल को क्रॉल नहीं किया जाता.
ये नियम सेट अप करने के लिए:
- Nutch की इंस्टॉलेशन डायरेक्ट्री पर जाएं.
conf/regex-urlfilter.txtमें बदलाव करें:$ nano conf/regex-urlfilter.txt
रेगुलर एक्सप्रेशन में "+" या "-" प्रीफ़िक्स डालें:
# skip file extensions -\.(gif|GIF|jpg|JPG|png|PNG|ico) # skip protocols (file: ftp: and mailto:) -^(file|ftp|mailto): # allow urls starting with https://support.google.com/gsa/ +^https://support.google.com/gsa/ # accept anything else #+.
क्रॉल स्क्रिप्ट में बदलाव करें.
अगर
gcs.uploadFormatपैरामीटर मौजूद नहीं है या इसकी वैल्यू "raw" पर सेट है, तो आपकोnutch indexकमांड में-addBinaryContent -base64आर्ग्युमेंट जोड़ने होंगे. इन आर्ग्युमेंट से, Nutch इंडेक्सर मॉड्यूल को बाइनरी कॉन्टेंट को Base64 में शामिल करने का निर्देश मिलता है.apache-nutch-1.15/binमेंcrawlस्क्रिप्ट खोलें.इस उदाहरण में दिखाए गए तरीके से विकल्प जोड़ें:
if $INDEXFLAG; then echo "Indexing $SEGMENT to index" __bin_nutch index $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb -addBinaryContent -base64 -linkdb "$CRAWL_PATH"/linkdb "$CRAWL_PATH"/segments/$SEGMENT echo "Cleaning up index if possible" __bin_nutch clean $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb else echo "Skipping indexing ..."
पांचवा चरण: वेब क्रॉल और कॉन्टेंट अपलोड करना
इंडेक्सर प्लग इन सेट अप करने के बाद, इसे लोकल मोड में चलाया जा सकता है. क्रॉलिंग का काम पूरा करने के लिए, ./bin से स्क्रिप्ट का इस्तेमाल करें.
यहां दिए गए उदाहरण में, यह माना गया है कि कॉम्पोनेंट लोकल डायरेक्ट्री में हैं. apache-nutch-1.15 डायरेक्ट्री से Nutch चलाएं:
$ bin/crawl -i -s urls/ crawl-test/ 5
क्रॉल लॉग, टर्मिनल या logs/ डायरेक्ट्री में उपलब्ध होते हैं. लॉगिंग आउटपुट को डायरेक्ट करने के लिए, conf/log4j.properties में बदलाव करें.