ویجت جستجو یک رابط جستجوی قابل تنظیم برای برنامههای وب ارائه میدهد. برای پیادهسازی به حداقل HTML و جاوا اسکریپت نیاز دارد و از ویژگیهای رایجی مانند facets و صفحهبندی پشتیبانی میکند. همچنین میتوانید رابط را با CSS و جاوا اسکریپت سفارشی کنید.
اگر به انعطافپذیری بیشتری نیاز دارید، از رابط برنامهنویسی کاربردی پرسوجو (Query API) استفاده کنید. به بخش ایجاد رابط جستجو با استفاده از رابط برنامهنویسی کاربردی پرسوجو مراجعه کنید.
ساخت رابط جستجو
ساخت رابط جستجو مستلزم این مراحل است:
- یک برنامه جستجو پیکربندی کنید.
- یک شناسه کلاینت برای برنامه ایجاد کنید.
- نشانهگذاری HTML را برای کادر جستجو و نتایج اضافه کنید.
- ویجت را در صفحه بارگذاری کنید.
- ویجت را مقداردهی اولیه کنید.
پیکربندی یک برنامه جستجو
هر رابط جستجو به یک برنامه جستجو نیاز دارد که در کنسول مدیریت تعریف شده باشد. این برنامه تنظیمات پرس و جو، مانند منابع داده، جنبهها و پارامترهای کیفیت جستجو را ارائه میدهد.
برای ایجاد یک برنامه جستجو، به ایجاد یک تجربه جستجوی سفارشی مراجعه کنید.
ایجاد شناسه کلاینت برای برنامه
علاوه بر مراحل موجود در پیکربندی دسترسی به Cloud Search API ، یک شناسه کلاینت برای برنامه وب خود ایجاد کنید.
هنگام پیکربندی پروژه:
- نوع کلاینت مرورگر وب را انتخاب کنید.
- آدرس مبدا (Origin URI) برنامه خود را وارد کنید.
- به شناسه کلاینت توجه کنید. این ویجت به رمز کلاینت نیاز ندارد.
برای اطلاعات بیشتر، به OAuth 2.0 برای برنامه وب سمت کلاینت مراجعه کنید.
اضافه کردن نشانهگذاری HTML
این ویجت به این عناصر HTML نیاز دارد:
- یک عنصر
inputبرای کادر جستجو. - عنصری برای تثبیت کادر محاورهای پیشنهاد.
- یک عنصر برای نتایج جستجو.
- (اختیاری) عنصری برای کنترلهای وجه.
این قطعه کد عناصری را نشان میدهد که با استفاده از ویژگیهای id خود شناسایی شدهاند:
ویجت را بارگذاری کنید
لودر را با استفاده از تگ <script> اضافه کنید:
یک فراخوانی مجدد onload ارائه دهید. وقتی لودر آماده شد، gapi.load() را برای بارگذاری ماژولهای کلاینت API، ورود به سیستم گوگل و جستجوی ابری فراخوانی کنید.
مقداردهی اولیه ویجت
کتابخانه کلاینت را با استفاده از gapi.client.init() یا gapi.auth2.init() با شناسه کلاینت خود و دامنه https://www.googleapis.com/auth/cloud_search.query مقداردهی اولیه کنید. از کلاسهای سازنده برای پیکربندی و اتصال ویجت استفاده کنید.
مثال مقداردهی اولیه:
متغیرهای پیکربندی:
سفارشیسازی تجربه ورود به سیستم
این ویجت هنگام شروع تایپ، از کاربران میخواهد که وارد سیستم شوند. برای یک تجربه شخصیسازیشده، میتوانید از ورود به سیستم گوگل برای وبسایتها استفاده کنید.
مستقیماً به کاربران اجازه دهید
برای نظارت و مدیریت حالتهای ورود به سیستم ، از ورود با گوگل استفاده کنید. این مثال از GoogleAuth.signIn() هنگام کلیک روی دکمه استفاده میکند:
ورود خودکار کاربران
برای سادهسازی ورود به سیستم، برنامه را برای کاربران سازمان خود از قبل تأیید کنید. این کار با Cloud Identity Aware Proxy نیز مفید است. به بخش «استفاده از ورود به سیستم گوگل با برنامههای فناوری اطلاعات» مراجعه کنید.
رابط کاربری را سفارشی کنید
شما میتوانید ظاهر ویجت را به روشهای زیر تغییر دهید:
- نادیده گرفتن استایلها با CSS.
- تزئین عناصر با آداپتور.
- ایجاد عناصر سفارشی با آداپتور
استایلها را با CSS نادیده بگیرید
این ویجت شامل CSS مخصوص به خود است. برای لغو آن، از انتخابگرهای والد برای افزایش ویژگی استفاده کنید:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
به مرجع کلاسهای CSS پشتیبانیشده مراجعه کنید.
عناصر را با آداپتور تزئین کنید
یک آداپتور ایجاد و ثبت کنید تا عناصر را قبل از رندر تغییر دهد. این مثال یک کلاس CSS سفارشی اضافه میکند:
ثبت آداپتور در هنگام مقداردهی اولیه:
ایجاد عناصر سفارشی با آداپتور
برای ساخت کامپوننتهای رابط کاربری سفارشی createSuggestionElement ، createFacetResultElement یا createSearchResultElement استفاده کنید. این مثال از تگهای <template> در HTML استفاده میکند:
آداپتور را ثبت کنید:
عناصر وجهی سفارشی باید از این قوانین پیروی کنند:
- تابع
cloudsearch_facet_bucket_clickableرا به عناصر قابل کلیک اضافه کنید. - هر سطل را در یک
cloudsearch_facet_bucket_containerبپیچید. - ترتیب سطلها را از پاسخ حفظ کنید.
برای مثال، قطعه کد زیر، وجهها را با استفاده از لینکها به جای چکباکسها رندر میکند.
سفارشیسازی رفتار جستجو
با استفاده از یک آداپتور، تنظیمات برنامه جستجو را با رهگیری درخواستها لغو کنید. interceptSearchRequest را برای تغییر درخواستها قبل از اجرا پیادهسازی کنید. این مثال، پرسوجوها را به یک منبع انتخابشده محدود میکند:
آداپتور را ثبت کنید:
کد HTML زیر برای نمایش یک کادر انتخاب جهت فیلتر کردن بر اساس منابع استفاده میشود:
کد زیر به تغییرات گوش میدهد، انتخاب را تنظیم میکند و در صورت لزوم، کوئری را دوباره اجرا میکند.
همچنین میتوانید با پیادهسازی interceptSearchResponse در آداپتور، پاسخ جستجو را رهگیری کنید.
نسخههای پین
- نسخه API : قبل از مقداردهی اولیه،
cloudsearch.config/apiVersionرا تنظیم کنید. - نسخه ویجت : از
gapi.config.update('cloudsearch.config/clientVersion', 1.1)استفاده کنید.
اگر تنظیم نشده باشد، هر دو به طور پیشفرض روی ۱.۰ تنظیم میشوند.
برای مثال، برای پین کردن ویجت به نسخه ۱.۱:
رابط جستجو را ایمن کنید
از بهترین شیوههای امنیتی برای برنامههای وب، به ویژه برای جلوگیری از کلیکربایی، پیروی کنید.
اشکالزدایی را فعال کنید
برای فعال کردن اشکالزدایی interceptSearchRequest استفاده کنید:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;
ویجت جستجو یک رابط جستجوی قابل تنظیم برای برنامههای وب ارائه میدهد. برای پیادهسازی به حداقل HTML و جاوا اسکریپت نیاز دارد و از ویژگیهای رایجی مانند facets و صفحهبندی پشتیبانی میکند. همچنین میتوانید رابط را با CSS و جاوا اسکریپت سفارشی کنید.
اگر به انعطافپذیری بیشتری نیاز دارید، از رابط برنامهنویسی کاربردی پرسوجو (Query API) استفاده کنید. به بخش ایجاد رابط جستجو با استفاده از رابط برنامهنویسی کاربردی پرسوجو مراجعه کنید.
ساخت رابط جستجو
ساخت رابط جستجو مستلزم این مراحل است:
- یک برنامه جستجو پیکربندی کنید.
- یک شناسه کلاینت برای برنامه ایجاد کنید.
- نشانهگذاری HTML را برای کادر جستجو و نتایج اضافه کنید.
- ویجت را در صفحه بارگذاری کنید.
- ویجت را مقداردهی اولیه کنید.
پیکربندی یک برنامه جستجو
هر رابط جستجو به یک برنامه جستجو نیاز دارد که در کنسول مدیریت تعریف شده باشد. این برنامه تنظیمات پرس و جو، مانند منابع داده، جنبهها و پارامترهای کیفیت جستجو را ارائه میدهد.
برای ایجاد یک برنامه جستجو، به ایجاد یک تجربه جستجوی سفارشی مراجعه کنید.
ایجاد شناسه کلاینت برای برنامه
علاوه بر مراحل موجود در پیکربندی دسترسی به Cloud Search API ، یک شناسه کلاینت برای برنامه وب خود ایجاد کنید.
هنگام پیکربندی پروژه:
- نوع کلاینت مرورگر وب را انتخاب کنید.
- آدرس مبدا (Origin URI) برنامه خود را وارد کنید.
- به شناسه کلاینت توجه کنید. این ویجت به رمز کلاینت نیاز ندارد.
برای اطلاعات بیشتر، به OAuth 2.0 برای برنامه وب سمت کلاینت مراجعه کنید.
اضافه کردن نشانهگذاری HTML
این ویجت به این عناصر HTML نیاز دارد:
- یک عنصر
inputبرای کادر جستجو. - عنصری برای تثبیت کادر محاورهای پیشنهاد.
- یک عنصر برای نتایج جستجو.
- (اختیاری) عنصری برای کنترلهای وجه.
این قطعه کد عناصری را نشان میدهد که با استفاده از ویژگیهای id خود شناسایی شدهاند:
ویجت را بارگذاری کنید
لودر را با استفاده از تگ <script> اضافه کنید:
یک فراخوانی مجدد onload ارائه دهید. وقتی لودر آماده شد، gapi.load() را برای بارگذاری ماژولهای کلاینت API، ورود به سیستم گوگل و جستجوی ابری فراخوانی کنید.
مقداردهی اولیه ویجت
کتابخانه کلاینت را با استفاده از gapi.client.init() یا gapi.auth2.init() با شناسه کلاینت خود و دامنه https://www.googleapis.com/auth/cloud_search.query مقداردهی اولیه کنید. از کلاسهای سازنده برای پیکربندی و اتصال ویجت استفاده کنید.
مثال مقداردهی اولیه:
متغیرهای پیکربندی:
سفارشیسازی تجربه ورود به سیستم
این ویجت هنگام شروع تایپ، از کاربران میخواهد که وارد سیستم شوند. برای یک تجربه شخصیسازیشده، میتوانید از ورود به سیستم گوگل برای وبسایتها استفاده کنید.
مستقیماً به کاربران اجازه دهید
برای نظارت و مدیریت حالتهای ورود به سیستم ، از ورود با گوگل استفاده کنید. این مثال از GoogleAuth.signIn() هنگام کلیک روی دکمه استفاده میکند:
ورود خودکار کاربران
برای سادهسازی ورود به سیستم، برنامه را برای کاربران سازمان خود از قبل تأیید کنید. این کار با Cloud Identity Aware Proxy نیز مفید است. به بخش «استفاده از ورود به سیستم گوگل با برنامههای فناوری اطلاعات» مراجعه کنید.
رابط کاربری را سفارشی کنید
شما میتوانید ظاهر ویجت را به روشهای زیر تغییر دهید:
- نادیده گرفتن استایلها با CSS.
- تزئین عناصر با آداپتور.
- ایجاد عناصر سفارشی با آداپتور
استایلها را با CSS نادیده بگیرید
این ویجت شامل CSS مخصوص به خود است. برای لغو آن، از انتخابگرهای والد برای افزایش ویژگی استفاده کنید:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
به مرجع کلاسهای CSS پشتیبانیشده مراجعه کنید.
عناصر را با آداپتور تزئین کنید
یک آداپتور ایجاد و ثبت کنید تا عناصر را قبل از رندر تغییر دهد. این مثال یک کلاس CSS سفارشی اضافه میکند:
ثبت آداپتور در هنگام مقداردهی اولیه:
ایجاد عناصر سفارشی با آداپتور
برای ساخت کامپوننتهای رابط کاربری سفارشی createSuggestionElement ، createFacetResultElement یا createSearchResultElement استفاده کنید. این مثال از تگهای <template> در HTML استفاده میکند:
آداپتور را ثبت کنید:
عناصر وجهی سفارشی باید از این قوانین پیروی کنند:
- تابع
cloudsearch_facet_bucket_clickableرا به عناصر قابل کلیک اضافه کنید. - هر سطل را در یک
cloudsearch_facet_bucket_containerبپیچید. - ترتیب سطلها را از پاسخ حفظ کنید.
برای مثال، قطعه کد زیر، وجهها را با استفاده از لینکها به جای چکباکسها رندر میکند.
سفارشیسازی رفتار جستجو
با استفاده از یک آداپتور، تنظیمات برنامه جستجو را با رهگیری درخواستها لغو کنید. interceptSearchRequest را برای تغییر درخواستها قبل از اجرا پیادهسازی کنید. این مثال، پرسوجوها را به یک منبع انتخابشده محدود میکند:
آداپتور را ثبت کنید:
کد HTML زیر برای نمایش یک کادر انتخاب جهت فیلتر کردن بر اساس منابع استفاده میشود:
کد زیر به تغییرات گوش میدهد، انتخاب را تنظیم میکند و در صورت لزوم، کوئری را دوباره اجرا میکند.
همچنین میتوانید با پیادهسازی interceptSearchResponse در آداپتور، پاسخ جستجو را رهگیری کنید.
نسخههای پین
- نسخه API : قبل از مقداردهی اولیه،
cloudsearch.config/apiVersionرا تنظیم کنید. - نسخه ویجت : از
gapi.config.update('cloudsearch.config/clientVersion', 1.1)استفاده کنید.
اگر تنظیم نشده باشد، هر دو به طور پیشفرض روی ۱.۰ تنظیم میشوند.
برای مثال، برای پین کردن ویجت به نسخه ۱.۱:
رابط جستجو را ایمن کنید
از بهترین شیوههای امنیتی برای برنامههای وب، به ویژه برای جلوگیری از کلیکربایی، پیروی کنید.
اشکالزدایی را فعال کنید
برای فعال کردن اشکالزدایی interceptSearchRequest استفاده کنید:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;