সার্চ কনফিগারেশন

Compose-এর মাধ্যমে চেষ্টা করুন
Jetpack Compose হল Android-এর জন্য সাজেস্ট করা UI টুলকিট। Compose-এ কীভাবে সার্চ ফাংশনালিটি যোগ করতে হয় তা জানুন।

Android সিস্টেমের সাহায্যে সার্চ করার সুবিধা প্রদান করতে—অর্থাৎ, কোনও অ্যাক্টিভিটিতে সার্চ কোয়েরি পাঠাতে এবং সার্চ সাজেশন প্রদান করতে—আপনার অ্যাপ্লিকেশনকে অবশ্যই XML ফাইলের আকারে সার্চ কনফিগারেশন প্রদান করতে হবে।

এই পৃষ্ঠায় সার্চ কনফিগারেশন ফাইলের সিনট্যাক্স ও ব্যবহার সম্পর্কে বর্ণনা করা হয়েছে। আপনার অ্যাপ্লিকেশনের জন্য সার্চ ফিচার কীভাবে প্রয়োগ করবেন সেই সম্পর্কে আরও তথ্যের জন্য, সার্চ ইন্টারফেস তৈরি করুন দেখুন।

ফাইলের লোকেশন:
res/xml/filename.xml
Android ফাইলের নাম রিসোর্স আইডি হিসেবে ব্যবহার করে।
সিনট্যাক্স:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="string resource"
    android:hint="string resource"
    android:searchMode=["queryRewriteFromData" | "queryRewriteFromText"]
    android:searchButtonText="string resource"
    android:inputType="inputType"
    android:imeOptions="imeOptions"
    android:searchSuggestAuthority="string"
    android:searchSuggestPath="string"
    android:searchSuggestSelection="string"
    android:searchSuggestIntentAction="string"
    android:searchSuggestIntentData="string"
    android:searchSuggestThreshold="int"
    android:includeInGlobalSearch=["true" | "false"]
    android:searchSettingsDescription="string resource"
    android:queryAfterZeroResults=["true" | "false"]
    android:voiceSearchMode=["showVoiceSearchButton" | "launchWebSearch" | "launchRecognizer"]
    android:voiceLanguageModel=["free-form" | "web_search"]
    android:voicePromptText="string resource"
    android:voiceLanguage="string"
    android:voiceMaxResults="int"
    >
    <actionkey
        android:keycode="KEYCODE"
        android:queryActionMsg="string"
        android:suggestActionMsg="string"
        android:suggestActionMsgColumn="string" />
</searchable>
এলিমেন্ট:
<searchable>
অ্যাসিস্টেড সার্চ প্রদান করার জন্য Android সিস্টেমের ব্যবহার করা সব সার্চ কনফিগারেশন নির্ধারণ করে।

অ্যাট্রিবিউট:

android:label
স্ট্রিং রিসোর্স। (প্রয়োজনীয়।) আপনার অ্যাপ্লিকেশনের নাম। এটি আপনার <activity> বা <application> ম্যানিফেস্ট এলিমেন্টের android:label অ্যাট্রিবিউটে প্রয়োগ করা নামের মতোই হতে হবে। আপনি android:includeInGlobalSearch-কে "true"-এ সেট করলে, এই লেবেলটি শুধুমাত্র ব্যবহারকারী দেখতে পাবেন, যে ক্ষেত্রে, এই লেবেলটি সিস্টেমের সার্চ সেটিংসে আপনার অ্যাপ্লিকেশনকে একটি সার্চযোগ্য আইটেম হিসেবে শনাক্ত করতে ব্যবহার করা হয়।
android:hint
স্ট্রিং রিসোর্স। (সাজেস্ট করা হয়।) সার্চ টেক্সট ফিল্ডে কোনও টেক্সট লেখা না থাকলে যে টেক্সট দেখানো হবে। এটি ব্যবহারকারীকে কোন কন্টেন্ট সার্চ করা যাবে সেই সম্পর্কে ইঙ্গিত দেয়। অন্যান্য Android অ্যাপ্লিকেশনের সাথে সামঞ্জস্য বজায় রাখতে, android:hint-এর জন্য স্ট্রিং "<content-or-product> সার্চ করুন" হিসেবে ফর্ম্যাট করুন। যেমন, "গান ও আর্টিস্ট সার্চ করুন" অথবা "YouTube সার্চ করুন"।
android:searchMode
কীওয়ার্ড। সার্চ প্রেজেন্টেশন নিয়ন্ত্রণ করে এমন অতিরিক্ত মোড সেট করে। উপলভ্য মোডগুলি নির্ধারণ করে যে কোনও কাস্টম সাজেশন ফোকাস পেলে কোয়েরি টেক্সট কীভাবে আবার লিখতে হবে। নিম্নলিখিত মোড ভ্যালু গ্রহণ করা হয়:
মানবর্ণনা
"queryRewriteFromData" কোয়েরি টেক্সট আবার লিখতে SUGGEST_COLUMN_INTENT_DATA কলাম থেকে ভ্যালু ব্যবহার করুন। এটি শুধুমাত্র তখনই ব্যবহার করা উচিত যখন SUGGEST_COLUMN_INTENT_DATA-এর ভ্যালু ব্যবহারকারীর পরিদর্শন এবং এডিট করার জন্য উপযুক্ত হয়, যেমন HTTP URI।
"queryRewriteFromText" কোয়েরি টেক্সট আবার লিখতে SUGGEST_COLUMN_TEXT_1 কলাম থেকে ভ্যালু ব্যবহার করুন।

আরও তথ্যের জন্য, কাস্টম সার্চ সাজেশন যোগ করুন বিকল্পে কোয়েরি টেক্সট আবার লেখার ব্যাপারে ডকুমেন্টেশন দেখুন।

android:searchButtonText
স্ট্রিং রিসোর্স। সার্চ এক্সিকিউট করে এমন বোতামে দেখানোর জন্য টেক্সট। ডিফল্ট হিসেবে, বোতামে একটি সার্চ আইকন (একটি আতস কাচ) দেখানো হয়, যা আন্তর্জাতিকীকরণের জন্য আদর্শ। তাই, সার্চ ছাড়া অন্য কোনও অ্যাকশন না হলে, বোতাম পরিবর্তন করার জন্য এই অ্যাট্রিবিউট ব্যবহার করবেন না, যেমন, ওয়েব ব্রাউজারে URL-এর অনুরোধ।
android:inputType
কীওয়ার্ড। কোন ধরনের ইনপুট পদ্ধতি ব্যবহার করা হবে তা নির্ধারণ করে, যেমন সফ্ট কীবোর্ডের ধরন। বেশিরভাগ সার্চের ক্ষেত্রে, যেখানে ফ্রি-ফর্ম টেক্সট প্রত্যাশিত, সেখানে আপনার এই অ্যাট্রিবিউটের প্রয়োজন নেই। এই অ্যাট্রিবিউটের জন্য উপযুক্ত মানের তালিকা দেখতে inputType দেখুন।
android:imeOptions
কীওয়ার্ড। ইনপুট পদ্ধতির জন্য অতিরিক্ত বিকল্প প্রদান করে। বেশিরভাগ সার্চের ক্ষেত্রে, যেখানে ফ্রি-ফর্ম টেক্সট প্রত্যাশিত, সেখানে আপনার এই অ্যাট্রিবিউটের প্রয়োজন নেই। ডিফল্ট IME হল actionSearch, যা সফ্ট কীবোর্ডে নতুন লাইনের পরিবর্তে "সার্চ" বোতাম প্রদান করে। এই অ্যাট্রিবিউটের জন্য উপযুক্ত ভ্যালুর তালিকা দেখতে imeOptions দেখুন।

সার্চ সাজেশন অ্যাট্রিবিউট

সার্চ সাজেশন তৈরি করার জন্য আপনি কন্টেন্ট প্রোভাইডার নির্ধারণ করলে, আপনাকে অতিরিক্ত অ্যাট্রিবিউট নির্ধারণ করতে হবে যা কন্টেন্ট প্রোভাইডারের সাথে যোগাযোগ কনফিগার করে। সার্চ সাজেশন দেওয়ার সময়, আপনাকে নিম্নলিখিত কিছু <searchable> অ্যাট্রিবিউট দিতে হবে:


android:searchSuggestAuthority
String. (সার্চ সাজেশন দেওয়ার জন্য প্রয়োজন।) এই ভ্যালু, Android ম্যানিফেস্ট <provider> এলিমেন্টের android:authorities অ্যাট্রিবিউটে দেওয়া অথরিটি স্ট্রিংয়ের সাথে ম্যাচ করতে হবে।
android:searchSuggestPath
String. এই পাথটি সাজেশন কোয়েরি Uri-এর অংশ হিসেবে ব্যবহার করা হয়, প্রিফিক্স ও অথরিটির পরে এবং স্ট্যান্ডার্ড সাজেশন পাথের আগে। আপনার কাছে যদি এমন একটি কন্টেন্ট প্রোভাইডার থাকে যা বিভিন্ন ধরনের সাজেশন প্রদান করে—যেমন বিভিন্ন ডেটার ধরন—এবং আপনি যখন সাজেশন কোয়েরি পান তখন সেগুলিকে আলাদা করার জন্য একটি উপায় প্রয়োজন হয়, তবেই এটি প্রয়োজন।
android:searchSuggestSelection
String. এই ভ্যালু আপনার কোয়েরি ফাংশনে selection প্যারামিটার হিসেবে পাস করা হয়। সাধারণত এটি আপনার ডেটাবেসের জন্য WHERE ক্লজ এবং ব্যবহারকারীর লেখা আসল কোয়েরি স্ট্রিংয়ের জন্য প্লেসহোল্ডার হিসেবে এতে অবশ্যই একটি প্রশ্নচিহ্ন থাকতে হবে—যেমন, "query=?"। তবে, selectionArgs প্যারামিটার ব্যবহার করে কোয়েরি টেক্সটের ডেলিভারি ট্রিগার করতে আপনি যেকোনও নন-নাল ভ্যালু ব্যবহার করতে পারেন এবং তারপর selection প্যারামিটার উপেক্ষা করতে পারেন)।
android:searchSuggestIntentAction
String. ব্যবহারকারী কাস্টম সার্চ সাজেশনে ট্যাপ করলে ডিফল্ট ইনটেন্ট অ্যাকশন ব্যবহার করা হবে—যেমন "android.intent.action.VIEW"। SUGGEST_COLUMN_INTENT_ACTION কলাম ব্যবহার করে বেছে নেওয়া সাজেশন এই ভ্যালুকে ওভাররাইড না করলে, ব্যবহারকারী কোনও সাজেশনে ট্যাপ করলে ভ্যালুটি Intent-এর অ্যাকশন ফিল্ডে রাখা হয়।
android:searchSuggestIntentData
String. ব্যবহারকারী কাস্টম সার্চ সাজেশনে ট্যাপ করলে ডিফল্ট ইনটেন্ট ডেটা ব্যবহার করা হবে। বেছে নেওয়া সাজেশন— SUGGEST_COLUMN_INTENT_DATA কলামের মাধ্যমে—ওভাররাইড না করলে, ব্যবহারকারী কোনও সাজেশনে ট্যাপ করলে এই ভ্যালু Intent-এর ডেটা ফিল্ডে রাখা হয়।
android:searchSuggestThreshold
পূর্ণসংখ্যা। সাজেশন লুক-আপ ট্রিগার করার জন্য প্রয়োজনীয় অক্ষরের ন্যূনতম সংখ্যা। এটি শুধুমাত্র গ্যারেন্টি দেয় যে সিস্টেম আপনার কন্টেন্ট প্রোভাইডারকে থ্রেশহোল্ডের থেকে কম সময়ের জন্য কোনও কোয়েরি করে না। ডিফল্ট ভ্যালু হল ০।

সার্চ সাজেশনের জন্য উপরে উল্লেখ করা অ্যাট্রিবিউট সম্পর্কে আরও জানতে, কাস্টম সার্চ সাজেশন যোগ করা এবং কাস্টম সাজেশন যোগ করা সংক্রান্ত ডকুমেন্টেশন দেখুন।

কুইক সার্চ বক্স অ্যাট্রিবিউট

কুইক সার্চ বক্সে আপনার কাস্টম সার্চ সাজেশন উপলভ্য করতে, আপনাকে নিম্নলিখিত কিছু <searchable> অ্যাট্রিবিউট ব্যবহার করতে হবে:


android:includeInGlobalSearch
বুলিয়ান। (কুইক সার্চ বক্সে সার্চ সাজেশন প্রদান করার জন্য প্রয়োজনীয়।) আপনি যদি চান যে আপনার সাজেশন বিশ্বব্যাপী অ্যাক্সেসযোগ্য দ্রুত সার্চ বক্সে অন্তর্ভুক্ত করা হোক, তাহলে "true"-এ সেট করুন। কুইক সার্চ বক্সে আপনার সাজেশন দেখানোর আগে ব্যবহারকারীকে অবশ্যই সিস্টেম সার্চ সেটিংসে সার্চযোগ্য আইটেম হিসেবে আপনার অ্যাপ্লিকেশন চালু করতে হবে।
android:searchSettingsDescription
স্ট্রিং রিসোর্স। সার্চ সাজেশন সম্পর্কে একটি সংক্ষিপ্ত বিবরণ প্রদান করে যা আপনি দ্রুত সার্চ বক্সে প্রদান করেন, যা আপনার অ্যাপ্লিকেশনের জন্য সার্চযোগ্য আইটেম এন্ট্রিতে দেখানো হয়। আপনার বিবরণে সার্চ করা যায় এমন কন্টেন্টের সংক্ষিপ্ত বিবরণ থাকতে হবে। যেমন, মিউজিক অ্যাপ্লিকেশনের জন্য "শিল্পী, অ্যালবাম এবং ট্র্যাক" অথবা নোটপ্যাড অ্যাপ্লিকেশনের জন্য "সেভ করা নোট"।
android:queryAfterZeroResults
বুলিয়ান। আপনি যদি চান যে আপনার কন্টেন্ট প্রোভাইডারকে কোয়েরির সুপারসেটের জন্য ডাকা হোক যা আগে শূন্য ফলাফল দেখিয়েছে, তাহলে "true"-এ সেট করুন। যেমন, আপনার কন্টেন্ট প্রোভাইডার "bo"-এর জন্য কোনও ফলাফল না দেখালে, "bob"-এর জন্য আবার কোয়েরি করতে হবে। "false"-এ সেট করা হলে, একটি সেশনের জন্য সুপারসেট উপেক্ষা করা হয়—"bob" আবার কোয়েরি করার জন্য অনুরোধ করে না। এটি শুধুমাত্র সার্চ ডায়ালগের লাইফ বা সার্চ উইজেট ব্যবহার করার সময় অ্যাক্টিভিটির লাইফ পর্যন্ত থাকে। সার্চ ডায়ালগ বা অ্যাক্টিভিটি আবার খোলা হলে, "bo" আপনার কন্টেন্ট প্রোভাইডারকে আবার কোয়েরি করে। ডিফল্ট ভ্যালু হল false।

ভয়েস সার্চ অ্যাট্রিবিউট

ভয়েস সার্চ চালু করতে, আপনাকে নিম্নলিখিত কিছু <searchable> অ্যাট্রিবিউট ব্যবহার করতে হবে:


android:voiceSearchMode
কীওয়ার্ড। (ভয়েস সার্চের সুবিধা প্রদান করার জন্য প্রয়োজন।) ভয়েস সার্চের জন্য নির্দিষ্ট মোড সহ ভয়েস সার্চ চালু করে। ডিভাইসে ভয়েস সার্চের সুবিধা নাও থাকতে পারে, সেক্ষেত্রে এই ফ্ল্যাগগুলির কোনও প্রভাব থাকবে না। নিম্নলিখিত মোড ভ্যালু গ্রহণ করা হয়:
মানবর্ণনা
"showVoiceSearchButton" ডিভাইসে ভয়েস সার্চ উপলভ্য থাকলে, ভয়েস সার্চ বোতাম ডিসপ্লে করুন। সেট করা থাকলে, তাহলে "launchWebSearch" বা "launchRecognizer"-এর মধ্যে যেকোনও একটি সেট করতে হবে, পাইপ (|) অক্ষর দ্বারা আলাদা করা।
"launchWebSearch" ভয়েস সার্চ বোতাম ব্যবহারকারীকে সরাসরি বিল্ট-ইন ভয়েস ওয়েব সার্চ অ্যাক্টিভিটিতে নিয়ে যায়। বেশিরভাগ অ্যাপ্লিকেশন এই ফ্ল্যাগ ব্যবহার করে না, কারণ এটি ব্যবহারকারীকে সেই অ্যাক্টিভিটি থেকে দূরে সরিয়ে দেয় যেখানে সার্চ চালু করা হয়েছিল।
"launchRecognizer" ভয়েস সার্চ বোতাম ব্যবহারকারীকে সরাসরি বিল্ট-ইন ভয়েস রেকর্ডিং অ্যাক্টিভিটিতে নিয়ে যায়। এই অ্যাক্টিভিটি ব্যবহারকারীকে কথা বলতে প্রম্পট করে, বলা টেক্সট ট্রান্সক্রাইব করে এবং সার্চযোগ্য অ্যাক্টিভিটিতে ফলাফল হিসেবে পাওয়া কোয়েরি টেক্সট ফরওয়ার্ড করে, ঠিক যেমন ব্যবহারকারী সার্চ UI-তে টাইপ করে সার্চ বোতামে ট্যাপ করেছেন।
android:voiceLanguageModel
কীওয়ার্ড। ভয়েস শনাক্তকরণ সিস্টেমের দ্বারা অবশ্যই ব্যবহার করতে হবে এমন ল্যাঙ্গুয়েজ মডেল। নিম্নলিখিত মানগুলি গ্রহণ করা হয়:
মানবর্ণনা
"free_form" কোয়েরি ডিক্টেট করার জন্য ফ্রি-ফর্ম স্পিচ রিকগনিশন ব্যবহার করুন। এটি মূলত ইংরেজি ভাষার জন্য অপ্টিমাইজ করা হয়েছে। এটি ডিফল্ট বিকল্প।
"web_search" ছোট, সার্চ-লাইক বাক্যাংশের জন্য ওয়েব-সার্চ-টার্ম রিকগনিশন ব্যবহার করুন। এটি "free_form"-এর চেয়ে বেশি ভাষায় উপলভ্য।

আরও তথ্যের জন্য EXTRA_LANGUAGE_MODEL দেখুন।

android:voicePromptText
স্ট্রিং রিসোর্স। ভয়েস ইনপুট ডায়ালগে দেখানোর জন্য অতিরিক্ত মেসেজ।
android:voiceLanguage
String. যে ভাষায় কথা বলা হবে বলে আশা করা হচ্ছে, সেটি Locale-এ কনস্ট্যান্টের স্ট্রিং ভ্যালু হিসেবে প্রকাশ করা হয়, যেমন জার্মান ভাষার জন্য "de" বা ফরাসি ভাষার জন্য "fr"। এটি শুধুমাত্র তখনই প্রয়োজন হয় যখন এটি Locale.getDefault()-এর বর্তমান ভ্যালু থেকে আলাদা হয়।
android:voiceMaxResults
পূর্ণসংখ্যা। "সেরা" ফলাফল সহ, সর্বাধিক কতগুলি ফলাফল দেখানো হবে তা সেট করে, যা সবসময় ACTION_SEARCH ইনটেন্টের প্রাথমিক কোয়েরি হিসেবে প্রদান করা হয়। ১ বা তার বেশি হতে হবে। ইনটেন্ট থেকে ফলাফল পেতে EXTRA_RESULTS ব্যবহার করুন। এটি প্রদান করা না হলে, কতগুলি ফলাফল দেখাতে হবে তা রিকগনাইজার বেছে নেয়।
<actionkey>
সার্চ অ্যাকশনের জন্য ডিভাইসের 'কী' ও আচরণ নির্ধারণ করে। সার্চ অ্যাকশন বর্তমান কোয়েরি বা ফোকাস করা সাজেশনের উপর ভিত্তি করে ডিভাইসের বোতামে ট্যাপ করার সময় একটি বিশেষ আচরণ প্রদান করে। যেমন, 'কল করুন' বোতামে ট্যাপ করা হলে, বর্তমানে ফোকাস করা পরিচিতি সংক্রান্ত সাজেশনে ফোন কল শুরু করার জন্য পরিচিতি অ্যাপ্লিকেশন একটি সার্চ অ্যাকশন প্রদান করে।

সব ডিভাইসে সব অ্যাকশন কী উপলভ্য নয় এবং সব কী এইভাবে ওভাররাইড করা যায় না। যেমন, "হোম" কী ওভাররাইড করা যাবে না এবং এটি সবসময় হোম স্ক্রিনে ফিরিয়ে নিয়ে যাবে। এছাড়াও, সার্চ কোয়েরি টাইপ করার জন্য প্রয়োজন এমন কোনও কীয়ের জন্য অ্যাকশন কী নির্ধারণ করবেন না। এটি কল বোতাম এবং মেনু বোতামে উপলভ্য এবং যুক্তিসঙ্গত অ্যাকশন কীগুলিকে সীমাবদ্ধ করে।

কী নির্ধারণ করতে আপনাকে অবশ্যই android:keycode নির্ধারণ করতে হবে এবং সার্চ অ্যাকশন নির্ধারণ করতে অন্য তিনটি অ্যাট্রিবিউটের মধ্যে অন্তত একটি নির্ধারণ করতে হবে।

অ্যাট্রিবিউট:

android:keycode
String. (প্রয়োজনীয়।) KeyEvent থেকে পাওয়া একটি কী কোড যা আপনি যে অ্যাকশন কী-তে প্রতিক্রিয়া জানাতে চান সেটিকে দেখায়—যেমন, "KEYCODE_CALL"। এটি ACTION_SEARCH ইনটেন্টে যোগ করা হয় যা আপনার সার্চযোগ্য অ্যাক্টিভিটিতে পাস করা হয়। কী কোড পরীক্ষা করতে, getIntExtra(SearchManager.ACTION_KEY) ব্যবহার করুন। সার্চ অ্যাকশনের জন্য সব 'কী' কাজ করে না, কারণ সেগুলির মধ্যে অনেকগুলি টাইপিং, নেভিগেশন বা সিস্টেম ফাংশনের জন্য ব্যবহার করা হয়।
android:queryActionMsg
String. ব্যবহারকারী কোয়েরি টেক্সট লেখার সময় অ্যাকশন কী প্রেস করা হলে, অ্যাকশন মেসেজ পাঠানো হবে। এটি ACTION_SEARCH ইনটেন্টে যোগ করা হয় যা সিস্টেম আপনার সার্চযোগ্য অ্যাক্টিভিটিতে পাস করে। স্ট্রিং পরীক্ষা করতে, getStringExtra(SearchManager.ACTION_MSG) ব্যবহার করুন।
android:suggestActionMsg
String. সাজেশন ফোকাসে থাকার সময় অ্যাকশন কী প্রেস করা হলে, অ্যাকশন মেসেজ পাঠানো হবে। এটি সেই ইনটেন্টের সাথে যোগ করা হয় যা সিস্টেম আপনার সার্চ করা যায় এমন অ্যাক্টিভিটিতে পাস করে—সাজেশনের জন্য আপনার সংজ্ঞায়িত অ্যাকশন ব্যবহার করে। স্ট্রিং পরীক্ষা করতে, getStringExtra(SearchManager.ACTION_MSG) ব্যবহার করুন। আপনার সব সাজেশন এই অ্যাকশন কী সমর্থন করলে তবেই এটি ব্যবহার করা উচিত। সব সাজেশন যদি একই অ্যাকশন কী ম্যানেজ করতে না পারে, তাহলে আপনাকে পরিবর্তে নিম্নলিখিত android:suggestActionMsgColumn অ্যাট্রিবিউট ব্যবহার করতে হবে।
android:suggestActionMsgColumn
String. আপনার কন্টেন্ট প্রোভাইডারের কলামের নাম যা এই অ্যাকশন কী-এর জন্য অ্যাকশন মেসেজকে সংজ্ঞায়িত করে, যা কোনও সাজেশন ফোকাসে থাকাকালীন ব্যবহারকারী অ্যাকশন কী প্রেস করলে পাঠানো হবে। এই অ্যাট্রিবিউট আপনাকে সাজেশন-বাই-সাজেশন ভিত্তিতে অ্যাকশন কী নিয়ন্ত্রণ করতে দেয়, কারণ, সব সাজেশনের জন্য অ্যাকশন মেসেজ সংজ্ঞায়িত করতে android:suggestActionMsg অ্যাট্রিবিউট ব্যবহার করার পরিবর্তে, আপনার কন্টেন্ট প্রোভাইডারের প্রতিটি এন্ট্রি নিজস্ব অ্যাকশন মেসেজ প্রদান করে।

প্রথমে, আপনাকে প্রতিটি সাজেশন অ্যাকশন মেসেজ প্রদান করার জন্য আপনার কন্টেন্ট প্রোভাইডারে একটি কলাম সংজ্ঞায়িত করতে হবে, তারপর এই অ্যাট্রিবিউটে সেই কলামের নাম প্রদান করুন। সিস্টেম আপনার সাজেশন কার্সর দেখে, এখানে দেওয়া স্ট্রিং ব্যবহার করে আপনার অ্যাকশন মেসেজ কলাম বেছে নেয় এবং তারপর কার্সর থেকে অ্যাকশন মেসেজ স্ট্রিং বেছে নেয়। সেই স্ট্রিংটি ইনটেন্টে যোগ করা হয় যা সিস্টেম আপনার সার্চযোগ্য অ্যাক্টিভিটিতে পাস করে, আপনি সাজেশনের জন্য যে অ্যাকশন নির্ধারণ করেন তা ব্যবহার করে। স্ট্রিং পরীক্ষা করতে, getStringExtra(SearchManager.ACTION_MSG) ব্যবহার করুন। বেছে নেওয়া সাজেশনের জন্য ডেটা না থাকলে, অ্যাকশন কী উপেক্ষা করা হয়।

উদাহরণ:
XML ফাইল res/xml/searchable.xml-এ সেভ করা হয়েছে:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/search_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="dictionary"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:includeInGlobalSearch="true"
    android:searchSettingsDescription="@string/settings_description" >
</searchable>