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

আপনি একটি ওপেন সোর্স ওয়েব ক্রলার, অ্যাপাচি নাচের জন্য ক্লাউড সার্চ ইনডেক্সার প্লাগইন স্থাপন করে আপনার ব্যবহারকারীদের ওয়েব কন্টেন্ট পরিবেশন করার জন্য গুগল ক্লাউড সার্চ সেট আপ করতে পারেন।

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

গুরুত্বপূর্ণ বিবেচ্য বিষয়

ইনডেক্সার প্লাগইন স্থাপন করার আগে, নিম্নলিখিত বিবেচ্য বিষয়গুলি সম্পর্কে সচেতন থাকুন।

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

সিস্টেমের জন্য আবশ্যক
অপারেটিং সিস্টেম শুধুমাত্র লিনাক্স:
  • উবুন্টু
  • রেড হ্যাট এন্টারপ্রাইজ লিনাক্স ৫.০
  • SUSE এন্টারপ্রাইজ লিনাক্স ১০ (৬৪ বিট)
সফটওয়্যার
  • অ্যাপাচি নাচ সংস্করণ ১.১৫। ইনডেক্সার প্লাগইন সফ্টওয়্যারটিতে নাচের এই সংস্করণটি অন্তর্ভুক্ত রয়েছে।
  • জাভা JRE 1.8 কম্পিউটারে ইনস্টল করা আছে যা ইনডেক্সার প্লাগইন চালাবে
অ্যাপাচি টিকা ডকুমেন্টের ধরণ অ্যাপাচি টিকা ১.১৮ সমর্থিত ডকুমেন্ট ফরম্যাট

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

এই ধাপগুলি বর্ণনা করে কিভাবে ইনডেক্সার প্লাগইন ইনস্টল করতে হয় এবং URL গুলি ক্রল করতে এবং ক্লাউড অনুসন্ধানে ফলাফল ফেরত দেওয়ার জন্য এর উপাদানগুলি কনফিগার করতে হয়।

পূর্বশর্ত

ইনডেক্সার প্লাগইন স্থাপন করার আগে, ক্লাউড সার্চ এবং ডেটা সোর্স সংযোগ করার জন্য প্রয়োজনীয় তথ্য সংগ্রহ করুন:

ধাপ ১: প্লাগইন সফটওয়্যার এবং অ্যাপাচি নাচ তৈরি এবং ইনস্টল করুন

  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 plugins ফোল্ডারে ( apache-nutch-1.15/plugins ) কপি করুন।

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

প্লাগইনটি কনফিগার করতে, plugin-configuration.properties নামে একটি ফাইল তৈরি করুন। ক্লাউড সার্চ ডেটা সোর্স অ্যাক্সেস করার জন্য কনফিগারেশন ফাইলটিকে নিম্নলিখিত প্যারামিটারগুলি নির্দিষ্ট করতে হবে।

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

নিম্নলিখিত উদাহরণে একটি নমুনা কনফিগারেশন ফাইল দেখানো হয়েছে:

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

কনফিগারেশন ফাইলে এমন প্যারামিটারও থাকতে পারে যা প্লাগইন আচরণ নিয়ন্ত্রণ করে, যেমন প্লাগইন কীভাবে ক্লাউড সার্চ API-তে ডেটা পুশ করে এবং এটি কীভাবে মেটাডেটা এবং স্ট্রাকচার্ড ডেটা পূরণ করে। এই প্যারামিটারগুলির বিবরণের জন্য, Google-সরবরাহকৃত সংযোগকারী প্যারামিটারগুলি দেখুন।

ধাপ ৩: অ্যাপাচি নাচ কনফিগার করুন

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

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

    প্রয়োজনীয়। ব্যবহারের জন্য প্লাগইনগুলির তালিকা। এতে কমপক্ষে অন্তর্ভুক্ত থাকতে হবে:

    • সূচক-মৌলিক
    • সূচক-আরও
    • ইনডেক্সার-গুগল-ক্লাউডসার্চ
    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>
    
  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> বিভাগে নিম্নলিখিত পরামিতি রয়েছে:

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

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

    আপলোড ফর্ম্যাট gcs.uploadFormat = text

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

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

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

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

  1. শুরুর URL গুলি সেট আপ করুন।

    ওয়েব ক্রলার আপনার কন্টেন্ট কোথা থেকে ক্রল করা শুরু করবে তা স্টার্ট ইউআরএল নিয়ন্ত্রণ করে। ক্রলারকে অবশ্যই লিঙ্কগুলি অনুসরণ করে আপনি যে সমস্ত কন্টেন্ট অন্তর্ভুক্ত করতে চান তাতে পৌঁছাতে সক্ষম হতে হবে।

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

    1. Nutch ইনস্টলেশন ডিরেক্টরিতে পরিবর্তন করুন:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. URL গুলির জন্য একটি ডিরেক্টরি তৈরি করুন:
      $ mkdir urls
    3. seed.txt নামে একটি ফাইল তৈরি করুন এবং প্রতি লাইনে একটি URL তালিকাভুক্ত করুন।
  2. অনুসরণ এবং অনুসরণ না করার নিয়ম সেট আপ করুন।

    কোন URL গুলিকে ক্রলার ইনডেক্স করা হবে তা নিয়ন্ত্রণ করে URL অনুসরণের নিয়ম। অনুসরণ না করার নিয়মগুলি URL গুলিকে ক্রল করা থেকে বিরত রাখে।

    এই নিয়মগুলি সেট আপ করতে:

    1. Nutch ইনস্টলেশন ডিরেক্টরিতে পরিবর্তন করুন।
    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
      #+.
      
  3. ক্রল স্ক্রিপ্ট সম্পাদনা করুন।

    যদি gcs.uploadFormat প্যারামিটারটি অনুপস্থিত থাকে অথবা "raw" তে সেট করা থাকে, তাহলে আপনাকে nutch index কমান্ডে -addBinaryContent -base64 আর্গুমেন্ট যোগ করতে হবে। এই আর্গুমেন্টগুলি Nutch Indexer মডিউলকে Base64-এ বাইনারি কন্টেন্ট অন্তর্ভুক্ত করতে বলে।

    1. apache-nutch-1.15/bincrawl স্ক্রিপ্টটি খুলুন।
    2. এই উদাহরণে দেখানো বিকল্পগুলি যোগ করুন:

            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 সম্পাদনা করুন।