একটি Apache Nutch Indexer প্লাগইন স্থাপন করুন

আপনি একটি ওপেন সোর্স ওয়েব ক্রলার Apache Nutch- এর জন্য Google ক্লাউড সার্চ ইনডেক্সার প্লাগইন স্থাপন করে আপনার ব্যবহারকারীদের কাছে ওয়েব সামগ্রী পরিবেশন করার জন্য Google ক্লাউড অনুসন্ধান সেট আপ করতে পারেন৷

আপনি যখন ওয়েব ক্রল শুরু করেন, তখন Apache Nutch ওয়েব ক্রল করে এবং Google ক্লাউড সার্চ ইন্ডেক্সিং API-এ ডকুমেন্ট সামগ্রীর আসল বাইনারি (বা পাঠ্য) সংস্করণ আপলোড করতে ইন্ডেক্সার প্লাগইন ব্যবহার করে। ইন্ডেক্সিং API বিষয়বস্তুকে সূচী করে এবং আপনার ব্যবহারকারীদের কাছে ফলাফল পরিবেশন করে।

গুরুত্বপূর্ণ বিবেচনা

সিস্টেমের জন্য আবশ্যক

সিস্টেমের জন্য আবশ্যক
অপারেটিং সিস্টেম শুধুমাত্র লিনাক্স:
  • উবুন্টু
  • Red Hat Enterprise Linux 5.0
  • SUSE এন্টারপ্রাইজ লিনাক্স 10 (64 বিট)
সফটওয়্যার
  • Apache Nutch সংস্করণ 1.15। ইনডেক্সার প্লাগইন সফ্টওয়্যারটি Nutch এর এই সংস্করণটি অন্তর্ভুক্ত করে।
  • জাভা JRE 1.8 কম্পিউটারে ইন্সটল করা হবে যা ইনডেক্সার প্লাগইন চালাবে
অ্যাপাচি টিকা নথির ধরন Apache Tika 1.18 সমর্থিত ডকুমেন্ট ফরম্যাট

ইনডেক্সার প্লাগইন স্থাপন করুন

নিম্নলিখিত পদক্ষেপগুলি বর্ণনা করে যে কীভাবে সূচক প্লাগইন ইনস্টল করতে হয় এবং নির্দিষ্ট URL গুলি ক্রল করতে এবং ফলাফলগুলিকে ক্লাউড অনুসন্ধানে ফিরিয়ে দিতে এর উপাদানগুলি কনফিগার করতে হয়৷

পূর্বশর্ত

আপনি ক্লাউড অনুসন্ধান Apache Nutch indexer প্লাগইন স্থাপন করার আগে, Google ক্লাউড অনুসন্ধান এবং ডেটা উত্স সংযোগ করার জন্য প্রয়োজনীয় তথ্য সংগ্রহ করুন:

ধাপ 1: প্লাগইন সফ্টওয়্যার এবং 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 (ধাপ 2-এ অন্তর্নির্মিত) এক্সট্র্যাক্ট করুন। Apache Nutch ইনস্টল প্লাগইন ফোল্ডারে plugins/indexer-google-cloudsearch ফোল্ডারটি অনুলিপি করুন ( apache-nutch-1.15/plugins )।

ধাপ 2: ইনডেক্সার প্লাগইন কনফিগার করুন

Apache Nutch Indexer প্লাগইন কনফিগার করতে, plugin-configuration.properties নামে একটি ফাইল তৈরি করুন।

কনফিগারেশন ফাইলে অবশ্যই নিম্নলিখিত পরামিতিগুলি নির্দিষ্ট করতে হবে, যা Google ক্লাউড অনুসন্ধান ডেটা উত্স অ্যাক্সেস করার জন্য প্রয়োজনীয়৷

বিন্যাস প্যারামিটার
ডেটা উৎস আইডি api.sourceId = 1234567890abcdef
প্রয়োজন। Google ক্লাউড সার্চ সোর্স আইডি যা Google Workspace অ্যাডমিন ইন্ডেক্সার প্লাগ-ইনের জন্য সেট-আপ করেছেন।
পরিষেবা অ্যাকাউন্ট api.serviceAccountPrivateKeyFile = ./PrivateKey.json
প্রয়োজন। Google ক্লাউড সার্চ পরিষেবা অ্যাকাউন্ট কী ফাইল যা Google Workspace অ্যাডমিন ইনডেক্সার প্লাগইন অ্যাক্সেসযোগ্যতার জন্য তৈরি করেছেন।

নিম্নলিখিত উদাহরণটি প্রয়োজনীয় পরামিতি সহ একটি নমুনা কনফিগারেশন ফাইল দেখায়।

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

কনফিগারেশন ফাইলে অন্যান্য পরামিতিও থাকতে পারে যা ইনডেক্সার প্লাগইন আচরণ নিয়ন্ত্রণ করে। প্লাগইন কীভাবে ক্লাউড সার্চ API, defaultAcl.* এবং batch.* । ইনডেক্সার প্লাগইন কীভাবে মেটাডেটা এবং স্ট্রাকচার্ড ডেটা জমা করে তাও আপনি কনফিগার করতে পারেন।

এই পরামিতিগুলির বর্ণনার জন্য, Google-এর সরবরাহকৃত সংযোগকারী পরামিতিতে যান।

ধাপ 3: Apache Nutch কনফিগার করুন

  1. conf/nutch-site.xml খুলুন এবং নিম্নলিখিত প্যারামিটার যোগ করুন:

    বিন্যাস প্যারামিটার
    প্লাগইন অন্তর্ভুক্ত plugin.includes = text

    প্রয়োজন। ব্যবহার করার জন্য প্লাগইনগুলির তালিকা৷ এটি অন্তত অন্তর্ভুক্ত করা আবশ্যক:

    • সূচক-মৌলিক
    • index-আরো
    • indexer-google-cloudsearch
    conf/nutch-default.xml এই সম্পত্তির জন্য একটি ডিফল্ট মান প্রদান করে, তবে আপনাকে অবশ্যই এটিতে ম্যানুয়ালি indexer-google-cloudsearch যোগ করতে হবে।
    মেটাট্যাগ নাম metatags.names = text

    ঐচ্ছিক। কমা দ্বারা পৃথক করা ট্যাগগুলির তালিকা যা সংশ্লিষ্ট ডেটা উত্সের স্কিমার বৈশিষ্ট্যগুলিতে ম্যাপ করে৷ মেটাট্যাগের জন্য Apache Nutch কিভাবে সেট আপ করবেন সে সম্পর্কে আরও জানতে, 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>
    
  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>
    

    <writer> বিভাগে নিম্নলিখিত পরামিতি রয়েছে:

    বিন্যাস প্যারামিটার
    Google ক্লাউড অনুসন্ধান কনফিগারেশন ফাইলের পথ gcs.config.file = path

    প্রয়োজন। Google ক্লাউড অনুসন্ধান কনফিগারেশন ফাইলের সম্পূর্ণ (পরম) পথ।

    আপলোড বিন্যাস gcs.uploadFormat = text

    ঐচ্ছিক। যে বিন্যাসে ইন্ডেক্সার প্লাগইন ডকুমেন্ট কন্টেন্টকে Google ক্লাউড সার্চ ইন্ডেক্সার API-এ পুশ করে। বৈধ মান হল:

    • raw : ইনডেক্সার প্লাগইন মূল, অপরিবর্তিত নথি বিষয়বস্তুকে পুশ করে।
    • text : ইনডেক্সার প্লাগইন এক্সট্রাক্ট করা পাঠ্য বিষয়বস্তুকে পুশ করে। ডিফল্ট মান raw

ধাপ 4: ওয়েব ক্রল কনফিগার করুন

আপনি একটি ওয়েব ক্রল শুরু করার আগে, ক্রলটি কনফিগার করুন যাতে এটি শুধুমাত্র সেই তথ্য অন্তর্ভুক্ত করে যা আপনার সংস্থা অনুসন্ধান ফলাফলে উপলব্ধ করতে চায়৷ এই বিভাগে একটি ওভারভিউ প্রদান করে; কিভাবে একটি ওয়েব ক্রল সেট আপ করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, Nutch টিউটোরিয়ালে যান।

  1. স্টার্ট ইউআরএল সেট আপ করুন।

    যেখানে Apache Nutch ওয়েব ক্রলার আপনার বিষয়বস্তু ক্রল করা শুরু করে সেই URLগুলি নিয়ন্ত্রণ করুন৷ সূচনা URL গুলি ওয়েব ক্রলারকে সমস্ত সামগ্রীতে পৌঁছাতে সক্ষম করবে যা আপনি লিঙ্কগুলি অনুসরণ করে একটি নির্দিষ্ট ক্রলের মধ্যে অন্তর্ভুক্ত করতে চান৷ স্টার্ট ইউআরএল প্রয়োজন।

    স্টার্ট ইউআরএল সেট আপ করতে:

    1. ওয়ার্কিং ডাইরেক্টরিটিকে নচ ইন্সটলেশন ডিরেক্টরিতে পরিবর্তন করুন:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. url এর জন্য একটি ডিরেক্টরি তৈরি করুন:

      $ mkdir urls
    3. seed.txt নামে একটি ফাইল তৈরি করুন এবং প্রতি লাইনে 1টি ইউআরএল সহ ইউআরএল তালিকাভুক্ত করুন।

  2. অনুসরণ করুন এবং অনুসরণ করবেন না-এর নিয়মগুলি সেট আপ করুন।

    Google ক্লাউড অনুসন্ধান সূচীতে কোন URLগুলি ক্রল করা এবং অন্তর্ভুক্ত করা হয় তা নিয়ন্ত্রণ করে URL নিয়মগুলি অনুসরণ করুন৷ ওয়েব ক্রলার ইউআরএলের নিয়ম অনুসরণ করে ইউআরএল চেক করে। শুধুমাত্র এই নিয়মগুলির সাথে মেলে এমন URLগুলিই ক্রল এবং সূচীভুক্ত করা হয়৷

    ইউআরএলগুলিকে ক্রল করা এবং Google ক্লাউড অনুসন্ধান সূচীতে অন্তর্ভুক্ত করা থেকে বাদ দেওয়া নিয়মগুলি অনুসরণ করবেন না৷ কোনো URL-এ ক্রল না করার প্যাটার্ন থাকলে, ওয়েব ক্রলার এটি ক্রল করে না।

    ইউআরএল নিয়মগুলি অনুসরণ করুন এবং অনুসরণ করবেন না তা সেট আপ করতে:

    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 প্যারামিটারটি অনুপস্থিত থাকে বা "raw" তে সেট করা থাকে, তাহলে আপনাকে অবশ্যই " -addBinaryContent -base64 " আর্গুমেন্ট যোগ করতে হবে nutch index কমান্ডে পাস করতে। এই আর্গুমেন্টগুলি Nutch Indexer মডিউলকে Base64-এ বাইনারি বিষয়বস্তু অন্তর্ভুক্ত করতে বলে যখন এটি indexer প্লাগইন চালু করে। ./bin/crawl স্ক্রিপ্টে ডিফল্টরূপে এই আর্গুমেন্ট নেই।

    1. apache-nutch-1.15/bincrawl স্ক্রিপ্ট খুলুন।
    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 ..."
      

ধাপ 5: একটি ওয়েব ক্রল এবং সামগ্রী আপলোড শুরু করুন৷

আপনি ইনডেক্সার প্লাগইন ইনস্টল এবং সেট আপ করার পরে, আপনি স্থানীয় মোডে এটি নিজেই চালাতে পারেন। একটি ক্রলিং কাজ বা পৃথক Nutch কমান্ড চালানোর জন্য ./bin থেকে স্ক্রিপ্ট ব্যবহার করুন।

নিম্নলিখিত উদাহরণটি অনুমান করে যে প্রয়োজনীয় উপাদানগুলি স্থানীয় ডিরেক্টরিতে অবস্থিত। apache-nutch-1.15 ডিরেক্টরি থেকে নিম্নলিখিত কমান্ড সহ Nutch চালান:

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

ক্রল লগগুলি std আউটপুট (টার্মিনাল) বা logs/ ডিরেক্টরিতে পাওয়া যায়। লগিং আউটপুট নির্দেশ করতে বা আরও ভার্বোস লগিংয়ের জন্য, conf/log4j.properties সম্পাদনা করুন।