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

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

যখন আপনি ওয়েব ক্রল শুরু করেন, তখন Apache Nutch ওয়েব ক্রল করে এবং ইনডেক্সার প্লাগইন ব্যবহার করে ডকুমেন্ট কন্টেন্টের মূল বাইনারি (অথবা টেক্সট) ভার্সন Google Cloud Search ইনডেক্সিং API-তে আপলোড করে। ইনডেক্সিং 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 ইনস্টল প্লাগইন ফোল্ডারে ( 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
#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    কোন URL গুলি ক্রল করা হবে এবং Google Cloud Search সূচীতে অন্তর্ভুক্ত করা হবে তা Follow URL নিয়ম দ্বারা নিয়ন্ত্রিত হয়। ওয়েব ক্রলার Follow URL নিয়মের সাথে URL গুলি পরীক্ষা করে। শুধুমাত্র এই নিয়মগুলির সাথে মেলে এমন URL গুলিই ক্রল এবং ইন্ডেক্স করা হয়।

    'অনুসরণ করবেন না' নিয়মের কারণে URLগুলি ক্রল করা এবং Google Cloud Search সূচীতে অন্তর্ভুক্ত করা যাবে না। যদি কোনও URL-এ 'অনুসরণ করবেন না' প্যাটার্ন থাকে, তাহলে ওয়েব ক্রলার এটি ক্রল করবে না।

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

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

      $ cd ~/nutch/apache-nutch-X.Y/
    2. অনুসরণ/অনুসরণ না করার নিয়ম পরিবর্তন করতে conf/regex-urlfilter.txt সম্পাদনা করুন: \

      $ nano conf/regex-urlfilter.txt
    3. নিম্নলিখিত উদাহরণগুলিতে দেখানো হয়েছে, URL প্যাটার্ন এবং এক্সটেনশনগুলি অনুসরণ / অনুসরণ না করার জন্য "+" বা "-" উপসর্গ সহ নিয়মিত এক্সপ্রেশন লিখুন। ওপেন-এন্ডেড এক্সপ্রেশন অনুমোদিত।

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

ধাপ ৫: একটি ওয়েব ক্রল এবং কন্টেন্ট আপলোড শুরু করুন

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

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

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

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