আপনি একটি ওপেন সোর্স ওয়েব ক্রলার, অ্যাপাচি নাচের জন্য ক্লাউড সার্চ ইনডেক্সার প্লাগইন স্থাপন করে আপনার ব্যবহারকারীদের ওয়েব কন্টেন্ট পরিবেশন করার জন্য গুগল ক্লাউড সার্চ সেট আপ করতে পারেন।
যখন আপনি ওয়েব ক্রল শুরু করেন, তখন Apache Nutch ওয়েব ক্রল করে এবং ইনডেক্সার প্লাগইন ব্যবহার করে ডকুমেন্ট কন্টেন্টের মূল বাইনারি (অথবা টেক্সট) সংস্করণ Google Cloud Search API-তে আপলোড করে। Cloud Search API কন্টেন্টটি সূচী করে এবং আপনার ব্যবহারকারীদের ফলাফল পরিবেশন করে।
গুরুত্বপূর্ণ বিবেচ্য বিষয়
ইনডেক্সার প্লাগইন স্থাপন করার আগে, নিম্নলিখিত বিবেচ্য বিষয়গুলি সম্পর্কে সচেতন থাকুন।
সিস্টেমের জন্য আবশ্যক
| সিস্টেমের জন্য আবশ্যক | |
|---|---|
| অপারেটিং সিস্টেম | শুধুমাত্র লিনাক্স:
|
| সফটওয়্যার |
|
| অ্যাপাচি টিকা ডকুমেন্টের ধরণ | অ্যাপাচি টিকা ১.১৮ সমর্থিত ডকুমেন্ট ফরম্যাট |
ইনডেক্সার প্লাগইন স্থাপন করুন
এই ধাপগুলি বর্ণনা করে কিভাবে ইনডেক্সার প্লাগইন ইনস্টল করতে হয় এবং URL গুলি ক্রল করতে এবং ক্লাউড অনুসন্ধানে ফলাফল ফেরত দেওয়ার জন্য এর উপাদানগুলি কনফিগার করতে হয়।
পূর্বশর্ত
ইনডেক্সার প্লাগইন স্থাপন করার আগে, ক্লাউড সার্চ এবং ডেটা সোর্স সংযোগ করার জন্য প্রয়োজনীয় তথ্য সংগ্রহ করুন:
- Google Workspace প্রাইভেট কী (যার মধ্যে পরিষেবা অ্যাকাউন্ট আইডি থাকে)। একটি প্রাইভেট কী পাওয়ার বিষয়ে তথ্যের জন্য, ক্লাউড অনুসন্ধান API-তে অ্যাক্সেস কনফিগার করুন -এ যান।
- গুগল ওয়ার্কস্পেস ডেটা সোর্স আইডি। ডেটা সোর্স আইডি পাওয়ার বিষয়ে তথ্যের জন্য, অনুসন্ধানে একটি ডেটা সোর্স যোগ করুন বিভাগে যান।
ধাপ ১: প্লাগইন সফটওয়্যার এবং অ্যাপাচি নাচ তৈরি এবং ইনস্টল করুন
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 নামে একটি ফাইল তৈরি করুন। ক্লাউড সার্চ ডেটা সোর্স অ্যাক্সেস করার জন্য কনফিগারেশন ফাইলটিকে নিম্নলিখিত প্যারামিটারগুলি নির্দিষ্ট করতে হবে।
| বিন্যাস | প্যারামিটার |
| ডেটা সোর্স আইডি | api.sourceId = 1234567890abcdefপ্রয়োজন। Google Workspace অ্যাডমিনিস্ট্রেটর ইনডেক্সার প্লাগইনের জন্য যে ক্লাউড সার্চ সোর্স আইডি সেট আপ করেছেন। |
| পরিষেবা অ্যাকাউন্ট | api.serviceAccountPrivateKeyFile = ./PrivateKey.jsonপ্রয়োজন। ক্লাউড সার্চ সার্ভিস অ্যাকাউন্ট কী ফাইল যা Google Workspace অ্যাডমিনিস্ট্রেটর ইনডেক্সার প্লাগইন অ্যাক্সেসিবিলিটির জন্য তৈরি করেছেন। |
নিম্নলিখিত উদাহরণে একটি নমুনা কনফিগারেশন ফাইল দেখানো হয়েছে:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
কনফিগারেশন ফাইলে এমন প্যারামিটারও থাকতে পারে যা প্লাগইন আচরণ নিয়ন্ত্রণ করে, যেমন প্লাগইন কীভাবে ক্লাউড সার্চ API-তে ডেটা পুশ করে এবং এটি কীভাবে মেটাডেটা এবং স্ট্রাকচার্ড ডেটা পূরণ করে। এই প্যারামিটারগুলির বিবরণের জন্য, Google-সরবরাহকৃত সংযোগকারী প্যারামিটারগুলি দেখুন।
ধাপ ৩: অ্যাপাচি নাচ কনফিগার করুন
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>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 টিউটোরিয়ালটি দেখুন।
শুরুর URL গুলি সেট আপ করুন।
ওয়েব ক্রলার আপনার কন্টেন্ট কোথা থেকে ক্রল করা শুরু করবে তা স্টার্ট ইউআরএল নিয়ন্ত্রণ করে। ক্রলারকে অবশ্যই লিঙ্কগুলি অনুসরণ করে আপনি যে সমস্ত কন্টেন্ট অন্তর্ভুক্ত করতে চান তাতে পৌঁছাতে সক্ষম হতে হবে।
স্টার্ট ইউআরএল সেট আপ করতে:
- Nutch ইনস্টলেশন ডিরেক্টরিতে পরিবর্তন করুন:
$ cd ~/nutch/apache-nutch-X.Y/
- URL গুলির জন্য একটি ডিরেক্টরি তৈরি করুন:
$ mkdir urls
seed.txtনামে একটি ফাইল তৈরি করুন এবং প্রতি লাইনে একটি URL তালিকাভুক্ত করুন।
- Nutch ইনস্টলেশন ডিরেক্টরিতে পরিবর্তন করুন:
অনুসরণ এবং অনুসরণ না করার নিয়ম সেট আপ করুন।
কোন URL গুলিকে ক্রলার ইনডেক্স করা হবে তা নিয়ন্ত্রণ করে URL অনুসরণের নিয়ম। অনুসরণ না করার নিয়মগুলি URL গুলিকে ক্রল করা থেকে বিরত রাখে।
এই নিয়মগুলি সেট আপ করতে:
- 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 Indexer মডিউলকে 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 সম্পাদনা করুন।