Apache Natch Indexer प्लगिन डिप्लॉय करना

अपने उपयोगकर्ताओं को वेब कॉन्टेंट दिखाने के लिए, Google Cloud Search को सेट अप किया जा सकता है. इसके लिए, Apache Nutch के लिए Google Cloud Search इंडेक्सर प्लगिन का इस्तेमाल करें. यह एक ओपन सोर्स वेब क्रॉलर है.

वेब क्रॉल शुरू करने पर, Apache Nutch वेब को क्रॉल करता है और इंडेक्सर प्लगिन का इस्तेमाल करके, दस्तावेज़ के कॉन्टेंट के ओरिजनल बाइनरी (या टेक्स्ट) वर्शन को Google Cloud Search इंडेक्स करने वाले एपीआई में अपलोड करता है. इंडेक्स करने वाला एपीआई, कॉन्टेंट को इंडेक्स करता है और आपके उपयोगकर्ताओं को नतीजे दिखाता है.

ज़रूरी बातें

सिस्टम की ज़रूरतें

सिस्टम की ज़रूरतें
ऑपरेटिंग सिस्टम सिर्फ़ Linux के लिए:
  • Ubuntu
  • रेड हैट एंटरप्राइज़ Linux 5.0
  • SUSE Enterprise Linux 10 (64 बिट)
सॉफ़्टवेयर
  • Apache Nutch वर्शन 1.15. इंडेक्सर प्लगिन सॉफ़्टवेयर में Nutch का यह वर्शन शामिल है.
  • उस कंप्यूटर पर Java JRE 1.8 इंस्टॉल किया गया जो इंडेक्सर प्लगिन को चलाएगा
Apache Tika दस्तावेज़ के टाइप Apache Tika 1.18 के साथ काम करने वाले दस्तावेज़ के फ़ॉर्मैट

इंडेक्सर प्लगिन को डिप्लॉय करना

यहां दिए गए चरणों में, इंडेक्सर प्लगिन को इंस्टॉल करने और इसके कॉम्पोनेंट को कॉन्फ़िगर करने का तरीका बताया गया है. इससे, तय किए गए यूआरएल को क्रॉल किया जा सकेगा और नतीजों को Cloud Search में दिखाया जा सकेगा.

ज़रूरी शर्तें

Cloud Search Apache Nutch इंडेक्सर प्लगिन डिप्लॉय करने से पहले, Google Cloud Search और डेटा सोर्स को कनेक्ट करने के लिए ज़रूरी जानकारी इकट्ठा कर लें:

पहला चरण: प्लगिन सॉफ़्टवेयर और Apache Nutch बनाएं और इंस्टॉल करें

  1. GitHub से इंडेक्सर प्लगिन रिपॉज़िटरी का क्लोन बनाएं.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. इंडेक्सर प्लगिन का मनचाहा वर्शन देखें:

    $ git checkout tags/v1-0.0.5
  3. इंडेक्सर प्लगिन बनाएं.

    $ mvn package

    इंडेक्स करने वाला प्लगिन बनाते समय, जांच को स्किप करने के लिए, mvn package -DskipTests का इस्तेमाल करें.

  4. Apache Nutch 1.15 डाउनलोड करें और Apache Nutch इंस्टॉल करने के निर्देशों का पालन करें.

  5. target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (दूसरे चरण में बने) को एक फ़ोल्डर में निकालें. plugins/indexer-google-cloudsearch फ़ोल्डर को Apache Nutch इंस्टॉल प्लगिन फ़ोल्डर (apache-nutch-1.15/plugins) में कॉपी करें.

दूसरा चरण: इंडेक्सर प्लगिन को कॉन्फ़िगर करें

Apache Nutch Indexer प्लगिन कॉन्फ़िगर करने के लिए, plugin-configuration.properties नाम की फ़ाइल बनाएं.

कॉन्फ़िगरेशन फ़ाइल में ये पैरामीटर शामिल होने चाहिए, जो Google Cloud Search डेटा सोर्स को ऐक्सेस करने के लिए ज़रूरी है.

सेटिंग पैरामीटर
डेटा सोर्स का आईडी api.sourceId = 1234567890abcdef
ज़रूरी है. Google Cloud Search का वह सोर्स आईडी जिसे Google Workspace एडमिन ने इंडेक्सर प्लगिन के लिए सेट अप किया है.
सेवा खाता api.serviceAccountPrivateKeyFile = ./PrivateKey.json
ज़रूरी है. Google Cloud Search सेवा खाते की कुंजी फ़ाइल, जिसे Google Workspace एडमिन ने इंडेक्स प्लगिन की सुलभता सुविधा के लिए बनाया है.

यहां दिए गए उदाहरण में, ज़रूरी पैरामीटर के साथ सैंपल कॉन्फ़िगरेशन फ़ाइल दिखाई गई है.

#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#

कॉन्फ़िगरेशन फ़ाइल में ऐसे अन्य पैरामीटर भी हो सकते हैं जो इंडेक्सर प्लगिन के काम करने के तरीके को कंट्रोल करते हैं. आप यह कॉन्फ़िगर कर सकते हैं कि प्लगिन, डेटा को Cloud Search API, defaultAcl.*, और batch.* में पुश करता है. आपके पास यह भी कॉन्फ़िगर करने का विकल्प होता है कि इंडेक्सर प्लगिन, मेटाडेटा और स्ट्रक्चर्ड डेटा को कैसे अपने-आप भरता है.

इन पैरामीटर की जानकारी के लिए, यहां जाएं Google की ओर से दिए गए कनेक्टर पैरामीटर.

तीसरा चरण: Apache Nutch कॉन्फ़िगर करना

  1. conf/nutch-site.xml खोलें और ये पैरामीटर जोड़ें:

    सेटिंग पैरामीटर
    प्लग इन में शामिल है plugin.includes = text

    ज़रूरी है. इस्तेमाल करने के लिए प्लगिन की सूची. इसमें कम से कम यह जानकारी होनी चाहिए:

    • index-basic
    • ज़्यादा इंडेक्स
    • indexer-google-cloudsearch
    इस प्रॉपर्टी के लिए, conf/nutch-default.xml एक डिफ़ॉल्ट वैल्यू है. हालांकि, आपको इसमें मैन्युअल तरीके से indexer-google-cloudsearch जोड़ना होगा.
    मेटाटैग नाम metatags.names = text

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

    यहां दिए गए उदाहरण में, 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>
    
  2. 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>
    

    <लेखक> सेक्शन में ये पैरामीटर शामिल हैं:

    सेटिंग पैरामीटर
    Google Cloud Search कॉन्फ़िगरेशन फ़ाइल का पाथ gcs.config.file = path

    ज़रूरी है. Google Cloud Search कॉन्फ़िगरेशन फ़ाइल का पूरा (पूरा) पाथ.

    अपलोड का फ़ॉर्मैट gcs.uploadFormat = text

    ज़रूरी नहीं. वह फ़ॉर्मैट जिसमें इंडेक्सर प्लगिन, दस्तावेज़ के कॉन्टेंट को Google Cloud Search इंडेक्स करने वाले एपीआई में भेजता है. मान्य मान हैं:

    • raw: इंडेक्सर प्लगिन, दस्तावेज़ के ऐसे कॉन्टेंट को पुश करता है जिसमें बदलाव नहीं किया गया है.
    • text: इंडेक्सर प्लगिन, टेक्स्ट के निकाले गए कॉन्टेंट को पुश करता है. डिफ़ॉल्ट वैल्यू raw है.

चौथा चरण: वेब क्रॉल कॉन्फ़िगर करना

वेब क्रॉल शुरू करने से पहले, क्रॉल को कॉन्फ़िगर करें, ताकि इसमें सिर्फ़ वह जानकारी शामिल हो जिसे आपका संगठन खोज नतीजों में उपलब्ध कराना चाहता है नतीजे. इस सेक्शन में खास जानकारी दी गई है; वेब क्रॉल सेट अप करने के तरीके के बारे में ज़्यादा जानने के लिए, नच ट्यूटोरियल.

  1. स्टार्ट यूआरएल सेट अप करें.

    शुरुआती यूआरएल यह कंट्रोल करते हैं कि Apache Nutch वेब क्रॉलर कहां से क्रॉल करना शुरू करेगा कॉन्टेंट. शुरू होने वाले यूआरएल से वेब क्रॉलर को हर उस कॉन्टेंट तक पहुंचने में मदद होनी चाहिए जिसे आपको किसी विशेष क्रॉल में शामिल करने के लिए लिंक पर क्लिक करें. शुरुआती यूआरएल ज़रूरी हैं.

    स्टार्ट यूआरएल सेट अप करने के लिए:

    1. काम करने वाली डायरेक्ट्री को नच इंस्टॉलेशन डायरेक्ट्री में बदलें:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. यूआरएल के लिए डायरेक्ट्री बनाएं:

      $ mkdir urls
    3. seed.txt नाम की एक फ़ाइल बनाएं और उसमें हर लाइन में एक यूआरएल के साथ यूआरएल की सूची बनाएं.

  2. फ़ॉलो करने और फ़ॉलो न करने के नियम सेट अप करें.

    यूआरएल के नियमों का पालन करें. इससे यह कंट्रोल किया जा सकता है कि Google Cloud Search इंडेक्स में कौनसे यूआरएल क्रॉल किए जाएं और कौनसे यूआरएल शामिल किए जाएं. वेब क्रॉलर, यूआरएल की जांच यूआरएल के नियमों को फ़ॉलो करें. सिर्फ़ इन नियमों से मेल खाने वाले यूआरएल ही क्रॉल और इंडेक्स किए जाते हैं.

    'फ़ॉलो न करें' नियमों के तहत यूआरएल को क्रॉल किए जाने और Google Cloud Search इंडेक्स में शामिल नहीं किया जाता. अगर किसी यूआरएल में 'क्रॉल न करें' पैटर्न मौजूद है, तो वेब क्रॉलर उसे क्रॉल नहीं करता है.

    यूआरएल को फ़ॉलो करने और फ़ॉलो न करने के नियमों को सेट अप करने के लिए:

    1. काम करने वाली डायरेक्ट्री को नच इंस्टॉलेशन डायरेक्ट्री में बदलें:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. 'फ़ॉलो करें/फ़ॉलो नहीं करें' नियमों को बदलने के लिए conf/regex-urlfilter.txt में बदलाव करें: \

      $ nano conf/regex-urlfilter.txt
    3. "+" के साथ रेगुलर एक्सप्रेशन डालें या "-" यूआरएल पैटर्न और एक्सटेंशन को फ़ॉलो / फ़ॉलो नहीं करें वाला प्रीफ़िक्स, जैसा कि ये उदाहरण देखें. ओपन-एंडेड एक्सप्रेशन की अनुमति है.

      # 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
      # (commented out due to the single url-prefix allowed above)
      #+.
      
  3. क्रॉल स्क्रिप्ट में बदलाव करें.

    अगर gcs.uploadFormat पैरामीटर मौजूद नहीं है या "रॉ" पर सेट है, आपको जोड़ना होगा "-addBinaryContent -base64" nutch index को पास किए जाने वाले तर्क आदेश. ये तर्क, नच इंडेक्सर मॉड्यूल को बाइनरी कॉन्टेंट शामिल करने के लिए कहते हैं है, जब यह इंडेक्सर प्लगिन को शुरू करता है. ./bin/क्रॉल स्क्रिप्ट में डिफ़ॉल्ट रूप से ये आर्ग्युमेंट होते हैं.

    1. crawl स्क्रिप्ट को apache-nutch-1.15/bin में खोलें.
    2. नीचे दिए गए उदाहरण की तरह, स्क्रिप्ट में -addBinaryContent -base64 विकल्प जोड़ें:

            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 की स्क्रिप्ट का इस्तेमाल करें या अलग-अलग Nutch कमांड का उपयोग कर सकते हैं.

नीचे दिए गए उदाहरण में माना गया है कि ज़रूरी कॉम्पोनेंट, डायरेक्ट्री. apache-nutch-1.15 डायरेक्ट्री से, इस कमांड की मदद से Nutch चलाएं:

$ bin/crawl -i -s urls/ crawl-test/ 5

क्रॉल लॉग, एसटीडी आउटपुट (टर्मिनल) या logs/डायरेक्ट्री में उपलब्ध होते हैं. यहां की यात्रा पर हूं लॉग करने के आउटपुट को डायरेक्ट करें या ज़्यादा शब्दों में जानकारी वाली लॉगिंग के लिए, एडिट करें conf/log4j.properties.