ক্লাউড সার্চ টিউটোরিয়ালের এই পৃষ্ঠায় ডেটা ইন্ডেক্সিংয়ের জন্য ডেটা সোর্স এবং কন্টেন্ট সংযোগকারী কীভাবে সেট আপ করতে হয় তা দেখানো হয়েছে। এই টিউটোরিয়ালের শুরু থেকে শুরু করতে, ক্লাউড সার্চ শুরু করার টিউটোরিয়ালটি দেখুন।
সংযোগকারী তৈরি করুন
আপনার ওয়ার্কিং ডিরেক্টরিটি cloud-search-samples/end-to-end/connector ডিরেক্টরিতে পরিবর্তন করুন এবং এই কমান্ডটি চালান:
mvn package -DskipTests
কমান্ডটি কন্টেন্ট সংযোগকারী তৈরির জন্য প্রয়োজনীয় নির্ভরতাগুলি ডাউনলোড করে এবং কোডটি কম্পাইল করে।
পরিষেবা অ্যাকাউন্টের শংসাপত্র তৈরি করুন
ক্লাউড সার্চ এপিআই কল করার জন্য সংযোগকারীর পরিষেবা অ্যাকাউন্ট শংসাপত্রের প্রয়োজন। শংসাপত্র তৈরি করতে:
- গুগল ক্লাউড কনসোলে ফিরে যান।
- বাম দিকের নেভিগেশনে, Credentials এ ক্লিক করুন। "Credential" পৃষ্ঠাটি প্রদর্শিত হবে।
- + CREATE CREDENTIALS ড্রপ-ডাউন তালিকায় ক্লিক করুন এবং Service account নির্বাচন করুন। "Create service account" পৃষ্ঠাটি প্রদর্শিত হবে।
- "সার্ভিস অ্যাকাউন্টের নাম" ক্ষেত্রে, "টিউটোরিয়াল" লিখুন।
- পরিষেবা অ্যাকাউন্ট আইডি মানটি লক্ষ্য করুন (পরিষেবা অ্যাকাউন্টের নামের ঠিক পরে)। এই মানটি পরে ব্যবহার করা হবে।
- CREATE এ ক্লিক করুন। "Service account permissions (alচ্ছিক)" ডায়ালগটি প্রদর্শিত হবে।
- CONTINUE এ ক্লিক করুন। "ব্যবহারকারীদের এই পরিষেবা অ্যাকাউন্টে অ্যাক্সেস প্রদান করুন (ঐচ্ছিক)" ডায়ালগটি প্রদর্শিত হবে।
- DONE এ ক্লিক করুন। "Credentials" স্ক্রিনটি প্রদর্শিত হবে।
- পরিষেবা অ্যাকাউন্টের অধীনে, পরিষেবা অ্যাকাউন্টের ইমেলটিতে ক্লিক করুন। "পরিষেবা অ্যাকাউন্টের বিবরণ" পৃষ্ঠাটি প্রদর্শিত হবে।
- Keys-এর অধীনে, ADD KEY ড্রপ-ডাউন তালিকায় ক্লিক করুন এবং Create new key নির্বাচন করুন। "Create private key" ডায়ালগটি প্রদর্শিত হবে।
- তৈরি করুন ক্লিক করুন।
- (ঐচ্ছিক) যদি "আপনি কি console.cloud.google.com এ ডাউনলোডের অনুমতি দিতে চান?" ডায়ালগটি প্রদর্শিত হয়, তাহলে অনুমতি দিন এ ক্লিক করুন।
- আপনার কম্পিউটারে একটি প্রাইভেট কী ফাইল সংরক্ষণ করা হয়েছে। ডাউনলোড করা ফাইলের অবস্থান লক্ষ্য করুন। এই ফাইলটি কন্টেন্ট সংযোগকারী কনফিগার করতে ব্যবহৃত হয় যাতে এটি Google ক্লাউড অনুসন্ধান API গুলিতে কল করার সময় নিজেকে প্রমাণীকরণ করতে পারে।
তৃতীয় পক্ষের সহায়তা শুরু করুন
অন্য কোনও ক্লাউড সার্চ এপিআই কল করার আগে, আপনাকে গুগল ক্লাউড সার্চের জন্য তৃতীয় পক্ষের সহায়তা শুরু করতে হবে।
ক্লাউড সার্চের জন্য তৃতীয় পক্ষের সহায়তা শুরু করতে:
আপনার ক্লাউড সার্চ প্ল্যাটফর্ম প্রজেক্টে পরিষেবা অ্যাকাউন্টের শংসাপত্র রয়েছে। তবে, তৃতীয় পক্ষের সহায়তা শুরু করার জন্য, আপনাকে অবশ্যই ওয়েব অ্যাপ্লিকেশন শংসাপত্র তৈরি করতে হবে। ওয়েব অ্যাপ্লিকেশন শংসাপত্র কীভাবে তৈরি করবেন তার নির্দেশাবলীর জন্য, ক্রিয়েট ক্রিয়েশনাল দেখুন। এই ধাপটি সম্পন্ন করার পরে, আপনার একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপন ফাইল থাকা উচিত।
অ্যাক্সেস টোকেন পেতে Google এর OAuth 2 খেলার মাঠ ব্যবহার করুন:
- সেটিংসে ক্লিক করুন এবং আপনার নিজস্ব প্রমাণীকরণ শংসাপত্র ব্যবহার করুন।
- ধাপ ১ থেকে ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট লিখুন।
- বন্ধ করুন ক্লিক করুন।
- স্কোপ ফিল্ডে,
https://www.googleapis.com/auth/cloud_search.settingsটাইপ করুন এবং Authorize এ ক্লিক করুন। OAuth 2 খেলার মাঠ একটি অনুমোদন কোড প্রদান করে। - টোকেনের জন্য এক্সচেঞ্জ অনুমোদন কোডে ক্লিক করুন। একটি টোকেন ফেরত পাঠানো হয়।
ক্লাউড সার্চের জন্য তৃতীয় পক্ষের সহায়তা শুরু করতে, নিম্নলিখিত curl কমান্ডটি ব্যবহার করুন। ধাপ ২-এ প্রাপ্ত টোকেনটি দিয়ে
[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যখন তৃতীয় পক্ষের ইনিশিয়ালাইজেশন সম্পূর্ণ হয়, তখন এতে
doneক্ষেত্রটিtrueতে সেট করা থাকে। উদাহরণস্বরূপ:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" done: true }
ডেটা সোর্স তৈরি করুন
এরপর, অ্যাডমিন কনসোলে একটি ডেটা সোর্স তৈরি করুন। ডেটা সোর্সটি সংযোগকারী ব্যবহার করে কন্টেন্ট ইন্ডেক্স করার জন্য একটি নেমস্পেস প্রদান করে।
- গুগল অ্যাডমিন কনসোল খুলুন।
- অ্যাপস আইকনে ক্লিক করুন। "অ্যাপস অ্যাডমিনিস্ট্রেশন" পৃষ্ঠাটি প্রদর্শিত হবে।
- Google Workspace এ ক্লিক করুন। "Apps Google Workspace administration" পৃষ্ঠাটি প্রদর্শিত হবে।
- নিচে স্ক্রোল করুন এবং ক্লাউড সার্চ এ ক্লিক করুন। "সেটিংস ফর গুগল ওয়ার্কস্পেস" পৃষ্ঠাটি প্রদর্শিত হবে।
- তৃতীয় পক্ষের ডেটা উৎস -এ ক্লিক করুন। "ডেটা উৎস" পৃষ্ঠাটি প্রদর্শিত হবে।
- বৃত্তাকার হলুদ + ক্লিক করুন। "নতুন ডেটা উৎস যোগ করুন" ডায়ালগটি প্রদর্শিত হবে।
- Display name ক্ষেত্রে, "tutorial" টাইপ করুন।
- "সার্ভিস অ্যাকাউন্ট ইমেল ঠিকানা" ক্ষেত্রে, পূর্ববর্তী বিভাগে তৈরি করা পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানাটি লিখুন। যদি আপনি পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানাটি না জানেন, তাহলে পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় মানটি দেখুন।
- ADD এ ক্লিক করুন। "সফলভাবে তৈরি করা ডেটা উৎস" ডায়ালগটি প্রদর্শিত হবে।
- * ঠিক আছে ক্লিক করুন। নতুন তৈরি ডেটা সোর্সের জন্য সোর্স আইডিটি লক্ষ্য করুন। সোর্স আইডিটি কন্টেন্ট কানেক্টর কনফিগার করতে ব্যবহৃত হয়।
GitHub API এর জন্য একটি ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন
পর্যাপ্ত কোটা থাকার জন্য সংযোগকারীর GitHub API-তে প্রমাণীকরণকৃত অ্যাক্সেস প্রয়োজন। সহজ করার জন্য, সংযোগকারীটি OAuth-এর পরিবর্তে ব্যক্তিগত অ্যাক্সেস টোকেন ব্যবহার করে। ব্যক্তিগত টোকেনগুলি OAuth-এর মতো সীমিত অনুমতি সহ ব্যবহারকারী হিসাবে প্রমাণীকরণের অনুমতি দেয়।
- GitHub-এ লগ ইন করুন।
- উপরের ডানদিকে, আপনার প্রোফাইল ছবিতে ক্লিক করুন। একটি ড্রপ-ডাউন মেনু প্রদর্শিত হবে।
- সেটিংস-এ ক্লিক করুন।
- ডেভেলপার সেটিংসে ক্লিক করুন।
- ব্যক্তিগত অ্যাক্সেস টোকেন ক্লিক করুন।
- ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন ক্লিক করুন।
- নোট ক্ষেত্রে, "ক্লাউড অনুসন্ধান টিউটোরিয়াল" লিখুন।
- public_repo স্কোপটি পরীক্ষা করুন।
- টোকেন তৈরি করুন ক্লিক করুন।
- জেনারেট করা টোকেনটি লক্ষ্য করুন। এটি সংযোগকারী দ্বারা GitHub API গুলিকে কল করার জন্য ব্যবহৃত হয় এবং ইন্ডেক্সিং সম্পাদনের জন্য 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 প্রতিষ্ঠানের একটি একক সংগ্রহস্থলকে সূচীবদ্ধ করা। সংগ্রহস্থলটি সূচীবদ্ধ করতে প্রায় ১ মিনিট সময় লাগে। প্রাথমিক সূচীবদ্ধকরণের পরে, সংযোগকারী সংগ্রহস্থলে পরিবর্তনগুলির জন্য পোল করা চালিয়ে যায় যা ক্লাউড অনুসন্ধান সূচীতে প্রতিফলিত হওয়া প্রয়োজন।
কোডটি পর্যালোচনা করা হচ্ছে
বাকি অংশগুলি সংযোগকারীটি কীভাবে তৈরি করা হয় তা পরীক্ষা করে।
অ্যাপ্লিকেশন শুরু করা হচ্ছে
সংযোগকারীর প্রবেশ বিন্দু হল GithubConnector ক্লাস। main পদ্ধতিটি SDK এর IndexingApplication চালু করে এবং এটি শুরু করে।
SDK দ্বারা প্রদত্ত ListingConnector একটি ট্র্যাভার্সাল কৌশল বাস্তবায়ন করে যা সূচকে থাকা আইটেমগুলির অবস্থা ট্র্যাক করার জন্য ক্লাউড অনুসন্ধান কিউগুলিকে কাজে লাগায়। এটি GitHub থেকে কন্টেন্ট অ্যাক্সেস করার জন্য নমুনা সংযোগকারী দ্বারা বাস্তবায়িত GithubRepository কে অর্পণ করে।
GitHub রিপোজিটরিগুলি অতিক্রম করা
সম্পূর্ণ ট্রাভার্সালের সময়, getIds() পদ্ধতিটি এমন আইটেমগুলিকে সারিতে পুশ করার জন্য বলা হয় যেগুলিকে সূচী করার প্রয়োজন হতে পারে।
সংযোগকারীটি একাধিক সংগ্রহস্থল বা সংস্থাকে সূচীবদ্ধ করতে পারে। ব্যর্থতার প্রভাব কমাতে, একবারে একটি GitHub সংগ্রহস্থল অতিক্রম করা হয়। getIds() এ পরবর্তী কলগুলিতে সূচীবদ্ধ হওয়ার জন্য সংগ্রহস্থলের তালিকা ধারণকারী ট্র্যাভার্সালের ফলাফল সহ একটি চেকপয়েন্ট ফেরত পাঠানো হয়। যদি কোনও ত্রুটি দেখা দেয়, তাহলে শুরু থেকে শুরু করার পরিবর্তে বর্তমান সংগ্রহস্থলে সূচীবদ্ধকরণ পুনরায় শুরু করা হয়।
collectRepositoryItems() পদ্ধতিটি একটি একক GitHub রেপোর ট্র্যাভার্সাল পরিচালনা করে। এই পদ্ধতিটি ApiOperations এর একটি সংগ্রহ প্রদান করে যা কিউতে পুশ করা আইটেমগুলিকে প্রতিনিধিত্ব করে। আইটেমগুলিকে একটি রিসোর্স নাম এবং একটি হ্যাশ মান হিসাবে পুশ করা হয় যা আইটেমের বর্তমান অবস্থাকে প্রতিনিধিত্ব করে।
GitHub রিপোজিটরির পরবর্তী ট্রাভার্সালগুলিতে হ্যাশ মান ব্যবহার করা হয়। এই মানটি অতিরিক্ত কন্টেন্ট আপলোড না করেই কন্টেন্ট পরিবর্তিত হয়েছে কিনা তা নির্ধারণ করার জন্য একটি হালকা চেক প্রদান করে। সংযোগকারী অন্ধভাবে সমস্ত আইটেম সারিবদ্ধ করে। যদি আইটেমটি নতুন হয় বা হ্যাশ মান পরিবর্তিত হয়, তবে এটি সারিতে পোলিং করার জন্য উপলব্ধ করা হয়। অন্যথায় আইটেমটি অপরিবর্তিত বলে বিবেচিত হবে।
সারি প্রক্রিয়াকরণ করা হচ্ছে
সম্পূর্ণ ট্রাভার্সাল সম্পন্ন হওয়ার পর, সংযোগকারীটি সূচীবদ্ধ করার জন্য প্রয়োজনীয় আইটেমগুলির জন্য কিউ পোলিং শুরু করে। কিউ থেকে টানা প্রতিটি আইটেমের জন্য getDoc() পদ্ধতিটি ব্যবহৃত হয়। পদ্ধতিটি GitHub থেকে আইটেমটি পড়ে এবং সূচীবদ্ধকরণের জন্য এটিকে সঠিক উপস্থাপনায় রূপান্তর করে।
যেহেতু সংযোগকারীটি লাইভ ডেটার বিপরীতে চলছে যা যেকোনো সময় পরিবর্তন করা যেতে পারে, তাই getDoc() যাচাই করে যে সারিতে থাকা আইটেমটি এখনও বৈধ এবং সূচক থেকে যে কোনও আইটেম মুছে ফেলে যা আর বিদ্যমান নেই।
প্রতিটি GitHub অবজেক্টের জন্য সংযোগকারী সূচক, সংশ্লিষ্ট indexItem() পদ্ধতি ক্লাউড অনুসন্ধানের জন্য আইটেম উপস্থাপনা তৈরির কাজ পরিচালনা করে। উদাহরণস্বরূপ, কন্টেন্ট আইটেমের জন্য উপস্থাপনা তৈরি করতে:
এরপর, অনুসন্ধান ইন্টারফেসটি স্থাপন করুন।