ক্লাউড সার্চ টিউটোরিয়ালের এই পৃষ্ঠাটি দেখায় কিভাবে ডেটা ইন্ডেক্স করার জন্য একটি ডেটা উৎস এবং বিষয়বস্তু সংযোগকারী সেট আপ করতে হয়। এই টিউটোরিয়ালের শুরু থেকে শুরু করতে, ক্লাউড অনুসন্ধান শুরু করার টিউটোরিয়াল পড়ুন
সংযোগকারী তৈরি করুন
আপনার কাজের ডিরেক্টরিটিকে cloud-search-samples/end-to-end/connector
ডিরেক্টরিতে পরিবর্তন করুন এবং এই কমান্ডটি চালান:
mvn package -DskipTests
কমান্ডটি সামগ্রী সংযোগকারী তৈরির জন্য প্রয়োজনীয় প্রয়োজনীয় নির্ভরতা ডাউনলোড করে এবং কোড কম্পাইল করে।
পরিষেবা অ্যাকাউন্টের শংসাপত্র তৈরি করুন
ক্লাউড সার্চ API কল করার জন্য সংযোগকারীর পরিষেবা অ্যাকাউন্টের শংসাপত্র প্রয়োজন৷ শংসাপত্র তৈরি করতে:
- Google ক্লাউড কনসোলে ফিরে যান।
- বাম নেভিগেশনে, শংসাপত্রে ক্লিক করুন। "প্রমাণপত্র" পৃষ্ঠা প্রদর্শিত হবে।
- + ক্রিয়েট ক্রেডেনশিয়াল ড্রপ-ডাউন তালিকাতে ক্লিক করুন এবং পরিষেবা অ্যাকাউন্ট নির্বাচন করুন। "পরিষেবা অ্যাকাউন্ট তৈরি করুন" পৃষ্ঠাটি প্রদর্শিত হবে।
- পরিষেবা অ্যাকাউন্টের নাম ক্ষেত্রে, "টিউটোরিয়াল" লিখুন।
- পরিষেবা অ্যাকাউন্ট আইডি মান (সেবা অ্যাকাউন্টের নামের ঠিক পরে) নোট করুন। এই মান পরে ব্যবহার করা হয়.
- CREATE এ ক্লিক করুন। "পরিষেবা অ্যাকাউন্ট অনুমতি (ঐচ্ছিক)" ডায়ালগ প্রদর্শিত হবে।
- CONTIUE এ ক্লিক করুন। "এই পরিষেবা অ্যাকাউন্টে ব্যবহারকারীদের অ্যাক্সেস দিন (ঐচ্ছিক)" ডায়ালগটি প্রদর্শিত হবে৷
- সম্পন্ন ক্লিক করুন. "শংসাপত্র" স্ক্রীন প্রদর্শিত হবে।
- পরিষেবা অ্যাকাউন্টের অধীনে, পরিষেবা অ্যাকাউন্টের ইমেলে ক্লিক করুন। "পরিষেবা অ্যাকাউন্টের বিবরণ" পৃষ্ঠাটি প্রদর্শিত হয়।
- কী-এর অধীনে, ADD KEY ড্রপ-ডাউন তালিকাতে ক্লিক করুন এবং নতুন কী তৈরি করুন নির্বাচন করুন। "ব্যক্তিগত কী তৈরি করুন" ডায়ালগটি প্রদর্শিত হবে।
- CREATE এ ক্লিক করুন।
- (ঐচ্ছিক) যদি "আপনি কি console.cloud.google.com এ ডাউনলোডের অনুমতি দিতে চান?" ডায়ালগ প্রদর্শিত হবে, অনুমতি দিন ক্লিক করুন।
- একটি ব্যক্তিগত কী ফাইল আপনার কম্পিউটারে সংরক্ষিত হয়। ডাউনলোড করা ফাইলের অবস্থান নোট করুন। এই ফাইলটি সামগ্রী সংযোগকারী কনফিগার করতে ব্যবহৃত হয় যাতে এটি Google ক্লাউড অনুসন্ধান API-কে কল করার সময় নিজেকে প্রমাণীকরণ করতে পারে৷
তৃতীয় পক্ষের সমর্থন শুরু করুন
আপনি অন্য কোনো ক্লাউড অনুসন্ধান API কল করার আগে, আপনাকে অবশ্যই Google ক্লাউড অনুসন্ধানের জন্য তৃতীয় পক্ষের সমর্থন শুরু করতে হবে।
ক্লাউড অনুসন্ধানের জন্য তৃতীয়-পক্ষ সমর্থন শুরু করতে:
আপনার ক্লাউড অনুসন্ধান প্ল্যাটফর্ম প্রকল্পে পরিষেবা অ্যাকাউন্টের শংসাপত্র রয়েছে৷ যাইহোক, তৃতীয় পক্ষের সমর্থন শুরু করার জন্য, আপনাকে অবশ্যই ওয়েব অ্যাপ্লিকেশন শংসাপত্র তৈরি করতে হবে। কিভাবে ওয়েব অ্যাপ্লিকেশন শংসাপত্র তৈরি করতে হয় তার নির্দেশাবলীর জন্য, শংসাপত্র তৈরি করুন দেখুন। এই ধাপটি সম্পূর্ণ করার পরে, আপনার একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপন ফাইল থাকা উচিত।
একটি অ্যাক্সেস টোকেন পেতে Google এর OAuth 2 খেলার মাঠ ব্যবহার করুন:
- সেটিংসে ক্লিক করুন এবং ব্যবহারকারীর আপনার নিজস্ব প্রমাণীকরণ শংসাপত্র পরীক্ষা করুন।
- ধাপ 1 থেকে ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট লিখুন।
- বন্ধ ক্লিক করুন.
- স্কোপ ফিল্ডে,
https://www.googleapis.com/auth/cloud_search.settings
টাইপ করুন এবং অনুমোদন এ ক্লিক করুন। OAuth 2 খেলার মাঠ একটি অনুমোদন কোড প্রদান করে। - টোকেনের জন্য এক্সচেঞ্জ অনুমোদন কোড ক্লিক করুন। একটি টোকেন ফেরত দেওয়া হয়।
ক্লাউড অনুসন্ধানের জন্য তৃতীয়-পক্ষ সমর্থন শুরু করতে, নিম্নলিখিত কার্ল কমান্ডটি ব্যবহার করুন। ধাপ 2 এ প্রাপ্ত টোকেন দিয়ে
[YOUR_ACCESS_TOKEN]
প্রতিস্থাপন করতে ভুলবেন না।curl --request POST \ 'https://cloudsearch.googleapis.com/v1:initializeCustomer' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{}' \ --compressed
সফল হলে, প্রতিক্রিয়া শরীরে
operation
একটি উদাহরণ থাকে। যেমন:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" }
ব্যর্থ হলে, ক্লাউড অনুসন্ধান সহায়তার সাথে যোগাযোগ করুন।
তৃতীয় পক্ষের সমর্থন শুরু হয়েছে কিনা তা যাচাই করতে operations.get ব্যবহার করুন:
curl \ 'https://cloudsearch.googleapis.com/v1/operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY?key= [YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressed
যখন তৃতীয় পক্ষের সূচনা সম্পূর্ণ হয়, এতে
true
সেটdone
ক্ষেত্রটি থাকে। যেমন:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" done: true }
ডেটা উত্স তৈরি করুন
এরপরে, অ্যাডমিন কনসোলে একটি ডেটা উৎস তৈরি করুন। ডেটা উৎস সংযোগকারী ব্যবহার করে বিষয়বস্তু ইন্ডেক্স করার জন্য একটি নামস্থান প্রদান করে।
- গুগল অ্যাডমিন কনসোল খুলুন।
- অ্যাপস আইকনে ক্লিক করুন। "অ্যাপস প্রশাসন" পৃষ্ঠাটি প্রদর্শিত হবে৷
- Google Workspace-এ ক্লিক করুন। "Apps Google Workspace প্রশাসন" পৃষ্ঠাটি দেখা যাচ্ছে।
- নিচে স্ক্রোল করুন এবং ক্লাউড সার্চ এ ক্লিক করুন। "Google Workspace-এর জন্য সেটিংস" পৃষ্ঠা দেখা যাচ্ছে।
- তৃতীয় পক্ষের ডেটা উৎসে ক্লিক করুন। "ডেটা সোর্স" পৃষ্ঠাটি প্রদর্শিত হবে।
- বৃত্তাকার হলুদ + ক্লিক করুন। "নতুন ডেটা উত্স যোগ করুন" ডায়ালগটি প্রদর্শিত হবে৷
- প্রদর্শন নামের ক্ষেত্রে, "টিউটোরিয়াল" টাইপ করুন।
- পরিষেবা অ্যাকাউন্ট ইমেল ঠিকানা ক্ষেত্রে, আপনি পূর্ববর্তী বিভাগে তৈরি পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা লিখুন। আপনি যদি পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা না জানেন তবে পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় মানটি দেখুন।
- ADD এ ক্লিক করুন। "সফলভাবে তৈরি করা ডেটা সোর্স" ডায়ালগটি প্রদর্শিত হবে।
- * ওকে ক্লিক করুন। নতুন তৈরি করা ডেটা উৎসের জন্য সোর্স আইডি নোট করুন। উৎস আইডি সামগ্রী সংযোগকারী কনফিগার করতে ব্যবহৃত হয়।
GitHub API-এর জন্য একটি ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন
পর্যাপ্ত কোটা থাকার জন্য সংযোগকারীর GitHub API-তে প্রমাণীকৃত অ্যাক্সেসের প্রয়োজন। সরলতার জন্য, সংযোগকারী OAuth-এর পরিবর্তে ব্যক্তিগত অ্যাক্সেস টোকেন ব্যবহার করে। ব্যক্তিগত টোকেনগুলি OAuth-এর অনুরূপ অনুমতিগুলির সীমিত সেট সহ ব্যবহারকারী হিসাবে প্রমাণীকরণের অনুমতি দেয়।
- GitHub এ লগ ইন করুন।
- উপরের-ডান কোণায়, আপনার প্রোফাইল ছবিতে ক্লিক করুন। একটি ড্রপ-ডাউন মেনু প্রদর্শিত হবে।
- সেটিংস এ ক্লিক করুন।
- বিকাশকারী সেটিংস ক্লিক করুন।
- ব্যক্তিগত অ্যাক্সেস টোকেন ক্লিক করুন।
- ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন ক্লিক করুন।
- নোট ক্ষেত্রে, "ক্লাউড অনুসন্ধান টিউটোরিয়াল" লিখুন।
- পাবলিক_রেপো স্কোপ চেক করুন।
- টোকেন তৈরি করুন ক্লিক করুন।
- উত্পন্ন টোকেন নোট করুন. এটি সংযোগকারী দ্বারা GitHub APIs কল করার জন্য ব্যবহার করা হয় এবং সূচী সম্পাদন করার জন্য API কোটা প্রদান করে।
সংযোগকারী কনফিগার করুন
শংসাপত্র এবং ডেটা উত্স তৈরি করার পরে, এই মানগুলি অন্তর্ভুক্ত করতে সংযোগকারী কনফিগারেশন আপডেট করুন:
- কমান্ড লাইন থেকে, ডিরেক্টরিকে
cloud-search-samples/end-to-end/connector/
এ পরিবর্তন করুন। - একটি টেক্সট এডিটর দিয়ে
sample-config.properties
ফাইলটি খুলুন। -
api.serviceAccountPrivateKeyFile
প্যারামিটারটি আপনার পূর্বে ডাউনলোড করা পরিষেবা শংসাপত্রের ফাইল পাথে সেট করুন৷ - আপনার পূর্বে তৈরি করা ডেটা উৎসের আইডিতে
api.sourceId
প্যারামিটার সেট করুন। - আপনার GitHub ব্যবহারকারীর নামের সাথে
github.user
প্যারামিটার সেট করুন। - আপনার পূর্বে তৈরি করা অ্যাক্সেস টোকেনে
github.token
প্যারামিটার সেট করুন। - ফাইলটি সংরক্ষণ করুন।
স্কিমা আপডেট করুন
সংযোজক উভয় কাঠামোগত এবং অসংগঠিত বিষয়বস্তু সূচী. ডেটা ইন্ডেক্স করার আগে, আপনাকে অবশ্যই ডেটা উৎসের স্কিমা আপডেট করতে হবে। স্কিমা আপডেট করতে নিম্নলিখিত কমান্ডটি চালান:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.SchemaTool \
-Dexec.args="-Dconfig=sample-config.properties"
সংযোগকারী চালান
সংযোগকারী চালাতে এবং ইন্ডেক্সিং শুরু করতে, কমান্ডটি চালান:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.GithubConnector \
-Dexec.args="-Dconfig=sample-config.properties"
সংযোগকারীর জন্য ডিফল্ট কনফিগারেশন হল googleworkspace
সংস্থার একটি একক সংগ্রহস্থলকে সূচীকরণ করা। সংগ্রহস্থলের সূচীকরণ প্রায় 1 মিনিট সময় নেয়। প্রাথমিক সূচীকরণের পরে, সংযোগকারী সংগ্রহস্থলের পরিবর্তনের জন্য পোল করতে থাকে যা ক্লাউড অনুসন্ধান সূচকে প্রতিফলিত হওয়া প্রয়োজন।
কোড পর্যালোচনা
অবশিষ্ট বিভাগগুলি পরীক্ষা করে কিভাবে সংযোগকারী নির্মিত হয়।
আবেদন শুরু হচ্ছে
সংযোগকারীর প্রবেশ বিন্দু হল GithubConnector
ক্লাস। main
পদ্ধতিটি SDK-এর IndexingApplication
ইনস্ট্যান্টিয়েট করে এবং এটি শুরু করে।
SDK দ্বারা প্রদত্ত ListingConnector
একটি ট্রাভার্সাল কৌশল প্রয়োগ করে যা সূচীতে আইটেমগুলির অবস্থা ট্র্যাক করার জন্য ক্লাউড অনুসন্ধান সারিগুলিকে কাজে লাগায়৷ এটি GitHub থেকে বিষয়বস্তু অ্যাক্সেস করার জন্য নমুনা সংযোগকারী দ্বারা বাস্তবায়িত GithubRepository
এ প্রতিনিধিত্ব করে।
গিটহাব রিপোজিটরিগুলি অতিক্রম করা
পূর্ণ ট্রাভার্সালের সময়, getIds()
পদ্ধতিটি এমন আইটেমগুলিকে পুশ করার জন্য বলা হয় যেগুলিকে সারিতে সূচী করার প্রয়োজন হতে পারে।
সংযোগকারী একাধিক সংগ্রহস্থল বা সংস্থাকে সূচী করতে পারে। একটি ব্যর্থতার প্রভাব কমানোর জন্য, একটি GitHub সংগ্রহস্থল একবারে অতিক্রম করা হয়। একটি চেকপয়েন্ট ট্র্যাভার্সালের ফলাফলের সাথে ফেরত দেওয়া হয় যাতে getIds()
এ পরবর্তী কলগুলিতে সূচীপত্রের তালিকা থাকে। কোনো ত্রুটি দেখা দিলে, শুরু থেকে শুরু করার পরিবর্তে বর্তমান সংগ্রহস্থলে সূচীকরণ পুনরায় শুরু করা হয়।
collectRepositoryItems()
পদ্ধতিটি একটি একক GitHub রেপোর ট্রাভার্সাল পরিচালনা করে। এই পদ্ধতিটি ApiOperations
এর একটি সংগ্রহ ফেরত দেয় যা আইটেমগুলিকে সারিতে ঠেলে দিতে হবে। আইটেম একটি সম্পদ নাম এবং আইটেম বর্তমান অবস্থা প্রতিনিধিত্ব একটি হ্যাশ মান হিসাবে ধাক্কা হয়.
হ্যাশ মান GitHub সংগ্রহস্থলের পরবর্তী ট্রাভার্সালে ব্যবহৃত হয়। অতিরিক্ত কন্টেন্ট আপলোড না করেই কন্টেন্ট পরিবর্তিত হয়েছে কিনা তা নির্ধারণ করতে এই মানটি একটি হালকা চেক প্রদান করে। সংযোগকারী অন্ধভাবে সমস্ত আইটেম সারিবদ্ধ. যদি আইটেমটি নতুন হয় বা হ্যাশের মান পরিবর্তিত হয়, তবে এটি সারিতে ভোট দেওয়ার জন্য উপলব্ধ করা হয়। অন্যথায় আইটেমটি অপরিবর্তিত হিসাবে বিবেচিত হয়।
সারি প্রক্রিয়াকরণ
সম্পূর্ণ ট্রাভার্সাল সম্পূর্ণ হওয়ার পরে, সংযোগকারী আইটেমগুলির জন্য সারিতে পোলিং শুরু করে যেগুলিকে সূচীকরণ করা দরকার৷ কিউ থেকে টানা প্রতিটি আইটেমের জন্য getDoc()
পদ্ধতি বলা হয়। পদ্ধতিটি গিটহাব থেকে আইটেমটি পড়ে এবং এটিকে সূচীকরণের জন্য সঠিক উপস্থাপনায় রূপান্তর করে।
যেহেতু সংযোগকারী লাইভ ডেটার বিরুদ্ধে চলছে যা যেকোনো সময় পরিবর্তিত হতে পারে, getDoc()
এছাড়াও যাচাই করে যে সারিতে থাকা আইটেমটি এখনও বৈধ এবং সূচী থেকে যে কোনো আইটেম মুছে দেয় যা আর বিদ্যমান নেই।
প্রতিটি GitHub অবজেক্টের জন্য সংযোগকারী সূচীগুলি, সংশ্লিষ্ট indexItem()
পদ্ধতিটি ক্লাউড অনুসন্ধানের জন্য আইটেম উপস্থাপনা তৈরি পরিচালনা করে। উদাহরণস্বরূপ, বিষয়বস্তু আইটেমগুলির জন্য উপস্থাপনা তৈরি করতে:
এরপরে, অনুসন্ধান ইন্টারফেস স্থাপন করুন।