SOSL (Salesforce Object Search Language) Salesforce প্ল্যাটফর্মের একটি সার্চ ভাষা, যা একাধিক অবজেক্টে কী-ওয়ার্ড ভিত্তিক সার্চ করতে ব্যবহৃত হয়। SOSL অনেকটা সার্চ ইঞ্জিনের মতো কাজ করে এবং এটি মূলত কী-ওয়ার্ড দিয়ে বিভিন্ন অবজেক্টের এক বা একাধিক ফিল্ডে সার্চ করে সংশ্লিষ্ট রেকর্ডগুলো রিটার্ন করে।
SOSL এর মৌলিক ধারণা
SOSL সাধারণত FIND কিওয়ার্ড ব্যবহার করে সার্চ চালায়। SOSL কুয়েরিতে নির্দিষ্ট কী-ওয়ার্ড বা টার্ম দিয়ে একাধিক অবজেক্টের মধ্যে সার্চ করা যায়। এটি একাধিক অবজেক্ট এবং ফিল্ডে দ্রুত সার্চ করার জন্য খুবই কার্যকর, বিশেষ করে যখন নির্দিষ্ট অবজেক্ট বা ফিল্ডে দ্রুত কোনো তথ্য খুঁজে বের করতে হয়।
SOSL এর প্রধান বৈশিষ্ট্যসমূহ
- FIND কিওয়ার্ড: SOSL-এ FIND কিওয়ার্ড ব্যবহার করে সার্চ করা হয়।
- মাল্টি-অবজেক্ট সার্চ: SOSL-এ একাধিক অবজেক্টের বিভিন্ন ফিল্ডে একত্রে সার্চ চালানো যায়।
- IN ALL FIELDS: SOSL-এর মাধ্যমে অবজেক্টের সকল ফিল্ডে সার্চ করা সম্ভব।
- RETURNING ক্লজ: RETURNING ক্লজ ব্যবহার করে নির্দিষ্ট অবজেক্ট এবং ফিল্ড থেকে রেকর্ড রিটার্ন করা যায়।
- Wildcard Support: SOSL আংশিক কী-ওয়ার্ড সার্চ সাপোর্ট করে, যা ফিল্ডের মধ্যে মিল থাকা ডেটা খুঁজে বের করতে সহায়ক।
SOSL এর সাধারণ সিনট্যাক্স
FIND 'search_term' IN ALL FIELDS RETURNING ObjectName1(Field1, Field2), ObjectName2(Field1, Field2)
- search_term: সার্চ টার্ম বা কী-ওয়ার্ড যা অনুসন্ধান করা হবে।
- IN ALL FIELDS: অবজেক্টের সব ফিল্ডে সার্চ করার নির্দেশ।
- RETURNING ObjectName(Field1, Field2): নির্দিষ্ট অবজেক্ট এবং ফিল্ডে সার্চ করে রেকর্ড রিটার্ন করা।
SOSL এর উদাহরণ
উদাহরণ ১: একটি নির্দিষ্ট কী-ওয়ার্ড দিয়ে সার্চ করা
নিচের উদাহরণে, Contact এবং Account অবজেক্টে 'John' নামক কী-ওয়ার্ডের ভিত্তিতে সার্চ করা হয়েছে।
List<List<SObject>> searchResults = [FIND 'John' IN ALL FIELDS RETURNING Contact(FirstName, LastName), Account(Name)];
- এখানে
Contactঅবজেক্টেরFirstName,LastNameএবংAccountঅবজেক্টেরNameফিল্ডে 'John' কী-ওয়ার্ড দিয়ে সার্চ করা হয়েছে।
উদাহরণ ২: Wildcard Character ব্যবহার করে SOSL সার্চ
SOSL-এ '*' ব্যবহার করে আংশিক মিলে থাকা ডেটা সার্চ করা যায়। নিচের উদাহরণে, 'Tech' দিয়ে শুরু হওয়া সমস্ত রেকর্ড সার্চ করা হয়েছে।
List<List<SObject>> searchResults = [FIND 'Tech*' IN ALL FIELDS RETURNING Account(Name), Opportunity(Name)];
- এখানে
AccountএবংOpportunityঅবজেক্টের নামের মধ্যে 'Tech' দিয়ে শুরু হওয়া সমস্ত রেকর্ড সার্চ করা হয়েছে।
উদাহরণ ৩: স্পেসিফিক অবজেক্টের নির্দিষ্ট ফিল্ডে সার্চ করা
নিচে FIND কিওয়ার্ড ব্যবহার করে একটি নির্দিষ্ট কী-ওয়ার্ড দিয়ে Account অবজেক্টে সার্চ করা হয়েছে এবং শুধুমাত্র Name ফিল্ডে মিল থাকা রেকর্ডগুলো রিটার্ন করা হয়েছে।
List<List<SObject>> searchResults = [FIND 'Software' IN NAME FIELDS RETURNING Account(Name)];
- এখানে
Accountঅবজেক্টের শুধুমাত্রNameফিল্ডে 'Software' কী-ওয়ার্ড দিয়ে সার্চ করা হয়েছে।
SOSL এবং SOQL এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | SOSL | SOQL |
|---|---|---|
| প্রধান উদ্দেশ্য | একাধিক অবজেক্টে কী-ওয়ার্ড ভিত্তিক সার্চ | নির্দিষ্ট অবজেক্টে ডেটা কুয়েরি |
| কিওয়ার্ড | FIND | SELECT |
| Aggregate Functions | সমর্থিত নয় | সমর্থিত |
| Relationship Querying | সমর্থিত নয় | Parent-Child ও Child-Parent সম্পর্কিত কুয়েরি সমর্থিত |
| Wildcard Search | সমর্থিত | সমর্থিত নয় |
| ফিল্ড নির্দিষ্ট সার্চ | IN ALL FIELDS বা নির্দিষ্ট ফিল্ডে সার্চ করা যায় | নির্দিষ্ট ফিল্ডের ডেটা সংগ্রহ করা যায় |
SOSL এর ব্যবহার ক্ষেত্র
- মাল্টি-অবজেক্ট সার্চ: একাধিক অবজেক্টের বিভিন্ন ফিল্ডে একত্রে সার্চ করার প্রয়োজন হলে।
- কী-ওয়ার্ড ভিত্তিক সার্চ: কোনো নির্দিষ্ট কী-ওয়ার্ড দিয়ে ডেটাবেজে দ্রুত অনুসন্ধান চালাতে।
- রিপোর্ট এবং অ্যানালাইসিসে সহায়ক: ডেটার মধ্যে নির্দিষ্ট কী-ওয়ার্ড বা টার্মের উপস্থিতি যাচাই করতে।
SOSL এর সুবিধা
- দ্রুত সার্চ কার্যক্রম: SOSL দ্রুত সার্চ করার জন্য অত্যন্ত কার্যকর, বিশেষ করে যখন একাধিক অবজেক্টের বিভিন্ন ফিল্ডে সার্চ করতে হয়।
- মাল্টি-অবজেক্ট সার্চ সক্ষমতা: একাধিক অবজেক্টে একত্রে সার্চ করা যায়।
- Wildcard Character Support: আংশিক বা প্রারম্ভিক কী-ওয়ার্ড দিয়ে সার্চ করা যায়, যা ডেটা খুঁজে পেতে সহায়ক।
উদাহরণ কোড: SOSL ব্যবহার করে সার্চ এবং প্রিন্ট করা
নিচের উদাহরণে, SOSL ব্যবহার করে Account এবং Contact অবজেক্টে নির্দিষ্ট কী-ওয়ার্ড দিয়ে সার্চ করা হয়েছে এবং ফলাফল প্রিন্ট করা হয়েছে।
public class SOSLExample {
public static void searchRecords(String searchKeyword) {
// SOSL কুয়েরি
List<List<SObject>> searchResults = [FIND :searchKeyword IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName)];
// Account রেকর্ড প্রিন্ট করা
List<Account> accounts = (List<Account>) searchResults[0];
for (Account acc : accounts) {
System.debug('Account Name: ' + acc.Name);
}
// Contact রেকর্ড প্রিন্ট করা
List<Contact> contacts = (List<Contact>) searchResults[1];
for (Contact con : contacts) {
System.debug('Contact Name: ' + con.FirstName + ' ' + con.LastName);
}
}
}
- এখানে searchRecords মেথডের মাধ্যমে সার্চ টার্ম ইনপুট হিসেবে নিয়ে
AccountএবংContactঅবজেক্টে সার্চ চালানো হয়েছে এবং প্রাপ্ত রেকর্ডগুলোকে প্রিন্ট করা হয়েছে।
সারসংক্ষেপ:
SOSL হলো Salesforce-এর একটি সার্চ ভাষা, যা একাধিক অবজেক্টে কী-ওয়ার্ড ভিত্তিক সার্চ চালায়। SOSL বিভিন্ন অবজেক্টের বিভিন্ন ফিল্ডে দ্রুত সার্চ করার জন্য উপযুক্ত এবং এটি Salesforce প্ল্যাটফর্মে মাল্টি-অবজেক্ট সার্চ এবং দ্রুত অনুসন্ধান কার্যক্রম সহজ করে তোলে।
Read more