আপনি একটি ওপেন সোর্স ওয়েব ক্রলার Apache Nutch- এর জন্য Google ক্লাউড সার্চ ইনডেক্সার প্লাগইন স্থাপন করে আপনার ব্যবহারকারীদের কাছে ওয়েব সামগ্রী পরিবেশন করার জন্য Google ক্লাউড অনুসন্ধান সেট আপ করতে পারেন৷
আপনি যখন ওয়েব ক্রল শুরু করেন, তখন Apache Nutch ওয়েব ক্রল করে এবং Google ক্লাউড সার্চ ইন্ডেক্সিং API-এ ডকুমেন্ট সামগ্রীর আসল বাইনারি (বা পাঠ্য) সংস্করণ আপলোড করতে ইন্ডেক্সার প্লাগইন ব্যবহার করে। ইন্ডেক্সিং API বিষয়বস্তুকে সূচী করে এবং আপনার ব্যবহারকারীদের কাছে ফলাফল পরিবেশন করে।
গুরুত্বপূর্ণ বিবেচনা
সিস্টেমের প্রয়োজনীয়তা
সিস্টেমের প্রয়োজনীয়তা | |
---|---|
অপারেটিং সিস্টেম | শুধুমাত্র লিনাক্স:
|
সফটওয়্যার |
|
অ্যাপাচি টিকা নথির ধরন | Apache Tika 1.18 সমর্থিত ডকুমেন্ট ফরম্যাট |
ইনডেক্সার প্লাগইন স্থাপন করুন
নিম্নলিখিত পদক্ষেপগুলি বর্ণনা করে যে কীভাবে সূচক প্লাগইন ইনস্টল করতে হয় এবং নির্দিষ্ট URL গুলি ক্রল করতে এবং ফলাফলগুলিকে ক্লাউড অনুসন্ধানে ফিরিয়ে দিতে এর উপাদানগুলি কনফিগার করতে হয়৷
পূর্বশর্ত
আপনি ক্লাউড অনুসন্ধান Apache Nutch indexer প্লাগইন স্থাপন করার আগে, Google ক্লাউড অনুসন্ধান এবং ডেটা উত্স সংযোগ করার জন্য প্রয়োজনীয় তথ্য সংগ্রহ করুন:
- Google Workspace প্রাইভেট কী (যেটিতে পরিষেবা অ্যাকাউন্ট আইডি থাকে)। একটি ব্যক্তিগত কী পাওয়ার বিষয়ে তথ্যের জন্য, Google ক্লাউড অনুসন্ধান API-এ অ্যাক্সেস কনফিগার করুন- এ যান।
- Google Workspace ডেটা সোর্স আইডি। একটি ডেটা উৎস আইডি পাওয়ার বিষয়ে তথ্যের জন্য, অনুসন্ধান করতে একটি ডেটা উৎস যোগ করুন -এ যান।
ধাপ 1: প্লাগইন সফ্টওয়্যার এবং Apache Nutch তৈরি এবং ইনস্টল করুন
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
(ধাপ 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 কনফিগার করুন
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>
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 টিউটোরিয়ালে যান।
স্টার্ট ইউআরএল সেট আপ করুন।
যেখানে Apache Nutch ওয়েব ক্রলার আপনার বিষয়বস্তু ক্রল করা শুরু করে সেই URLগুলি নিয়ন্ত্রণ করুন৷ সূচনা URL গুলি ওয়েব ক্রলারকে সমস্ত সামগ্রীতে পৌঁছাতে সক্ষম করবে যা আপনি লিঙ্কগুলি অনুসরণ করে একটি নির্দিষ্ট ক্রলের মধ্যে অন্তর্ভুক্ত করতে চান৷ স্টার্ট ইউআরএল প্রয়োজন।
স্টার্ট ইউআরএল সেট আপ করতে:
ওয়ার্কিং ডাইরেক্টরিটিকে নচ ইন্সটলেশন ডিরেক্টরিতে পরিবর্তন করুন:
$ cd ~/nutch/apache-nutch-X.Y/
url এর জন্য একটি ডিরেক্টরি তৈরি করুন:
$ mkdir urls
seed.txt
নামে একটি ফাইল তৈরি করুন এবং প্রতি লাইনে 1টি ইউআরএল সহ ইউআরএল তালিকাভুক্ত করুন।
অনুসরণ করুন এবং অনুসরণ করবেন না-এর নিয়মগুলি সেট আপ করুন।
Google ক্লাউড অনুসন্ধান সূচীতে কোন URLগুলি ক্রল করা এবং অন্তর্ভুক্ত করা হয় তা নিয়ন্ত্রণ করে URL নিয়মগুলি অনুসরণ করুন৷ ওয়েব ক্রলার ইউআরএলের নিয়ম অনুসরণ করে ইউআরএল চেক করে। শুধুমাত্র এই নিয়মগুলির সাথে মেলে এমন URLগুলিই ক্রল এবং সূচীভুক্ত করা হয়৷
ইউআরএলগুলিকে ক্রল করা এবং Google ক্লাউড অনুসন্ধান সূচীতে অন্তর্ভুক্ত করা থেকে বাদ দেওয়া নিয়মগুলি অনুসরণ করবেন না৷ কোনো URL-এ ক্রল না করার প্যাটার্ন থাকলে, ওয়েব ক্রলার এটি ক্রল করে না।
ইউআরএল নিয়মগুলি অনুসরণ করুন এবং অনুসরণ করবেন না তা সেট আপ করতে:
ওয়ার্কিং ডাইরেক্টরিটিকে নচ ইন্সটলেশন ডিরেক্টরিতে পরিবর্তন করুন:
$ cd ~/nutch/apache-nutch-X.Y/
অনুসরণ/করুন না-অনুসরণ নিয়ম পরিবর্তন করতে
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 # (commented out due to the single url-prefix allowed above) #+.
ক্রল স্ক্রিপ্ট সম্পাদনা করুন.
যদি
gcs.uploadFormat
প্যারামিটারটি অনুপস্থিত থাকে বা "raw" তে সেট করা থাকে, তাহলে আপনাকে অবশ্যই "-addBinaryContent -base64
" আর্গুমেন্ট যোগ করতে হবেnutch index
কমান্ডে পাস করতে। এই আর্গুমেন্টগুলি Nutch Indexer মডিউলকে Base64-এ বাইনারি বিষয়বস্তু অন্তর্ভুক্ত করতে বলে যখন এটি indexer প্লাগইন চালু করে। ./bin/crawl স্ক্রিপ্টে ডিফল্টরূপে এই আর্গুমেন্ট নেই।-
apache-nutch-1.15/bin
এcrawl
স্ক্রিপ্ট খুলুন। স্ক্রিপ্টে
-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
সম্পাদনা করুন।