تنظیمات کانکتور را تنظیم کنید

Google Cloud Search SDK حاوی چندین پارامتر پیکربندی ارائه شده توسط Google است که توسط همه رابط‌ها استفاده می‌شود. دانستن نحوه تنظیم این تنظیمات می تواند نمایه سازی داده ها را بسیار ساده کند. این راهنما چندین مشکل را که می تواند در طول نمایه سازی ظاهر شود و تنظیمات مورد استفاده برای حل آنها فهرست می کند.

توان نمایه سازی برای FullTraversalConnector کم است

جدول زیر تنظیمات پیکربندی را برای بهبود توان عملیاتی FullTraversalConnector فهرست می‌کند:

تنظیم توضیحات پیش فرض تغییر پیکربندی برای امتحان
traverse.partitionSize تعداد ApiOperation() که باید قبل از واکشی APIOperation() اضافی به صورت دسته ای پردازش شوند. SDK قبل از واکشی موارد اضافی منتظر می ماند تا پارتیشن فعلی پردازش شود. این تنظیم به مقدار حافظه موجود بستگی دارد. اندازه‌های پارتیشن کوچک‌تر، مانند 50 یا 100، به حافظه کمتری نیاز دارند اما انتظار بیشتری از طرف SDK دارند. 50 اگر حافظه زیادی در دسترس دارید، سعی کنید partitionSize به 1000 یا بیشتر افزایش دهید.
batch.batchSize تعداد درخواست ها با هم. در پایان پارتیشن بندی، SDK منتظر می ماند تا تمام درخواست های دسته ای از پارتیشن پردازش شوند. دسته های بزرگتر نیاز به صبر طولانی تری دارند. 10 سعی کنید اندازه دسته را کاهش دهید.
batch.maxActiveBatches تعداد دسته های مجاز در حال اجرای همزمان. 20 اگر batchSize کاهش دهید، باید maxActiveBatches طبق فرمول زیر افزایش دهید:

maxActiveBatches = (partitionSize / batchSize ) + 50. برای مثال اگر partititionSize شما 1000 و batchSize شما 5 است، maxActiveBatches شما باید 250 باشد. 50 اضافی یک بافر برای درخواست های مجدد است. این افزایش به کانکتور اجازه می دهد تا همه درخواست ها را بدون مسدود کردن دسته بندی کند.
traverse.threadPoolSize تعداد رشته هایی که رابط ایجاد می کند تا امکان پردازش موازی را فراهم کند. یک تکرار کننده واحد عملیات (معمولاً اشیاء RepositoryDoc ) را به صورت سریال واکشی می کند، اما API فرآیند را به صورت موازی با استفاده از تعداد رشته های threadPoolSize فراخوانی می کند. هر رشته یک مورد را در یک زمان پردازش می کند. پیش‌فرض 50 حداکثر تنها 50 مورد را به طور همزمان پردازش می‌کند و پردازش یک مورد جداگانه (از جمله درخواست نمایه‌سازی) تقریباً 4 ثانیه طول می‌کشد. 50 سعی کنید threadPoolSize را مضربی از 10 افزایش دهید.

در نهایت، استفاده از متد setRequestMode() را برای تغییر حالت درخواست API (اعم از ASYNCHRONOUS یا SYNCHRONOUS ) در نظر بگیرید.

برای اطلاعات بیشتر در مورد پارامترهای فایل پیکربندی، به پارامترهای پیکربندی ارائه شده توسط Google مراجعه کنید.

توان نمایه سازی برای ListTraversalConnector کم است

به‌طور پیش‌فرض، کانکتوری که ListTraversalConnnector را پیاده‌سازی می‌کند، از یک تراورسر واحد برای فهرست‌بندی موارد شما استفاده می‌کند. برای افزایش توان نمایه سازی، می توانید چندین تراورس ایجاد کنید که هر کدام با پیکربندی خاص خود روی وضعیت های مورد خاص تمرکز دارند ( NEW_ITEM ، MODIFIED و غیره). جدول زیر تنظیمات پیکربندی را برای بهبود توان عملیاتی فهرست می‌کند:

.
تنظیم توضیحات پیش فرض تغییر پیکربندی برای امتحان
repository.traversers = t1, t2, t3, ... یک یا چند تراورس جداگانه ایجاد می کند که t1, t2, t3, ... نام منحصر به فرد هر کدام است. هر گذرگر نامگذاری شده دارای مجموعه تنظیمات خاص خود است که با استفاده از نام منحصر به فرد گذرگر، مانند traversers. t1 .hostload و traversers. t2 .hostload یک ترورسر از این تنظیم برای افزودن ترورسرهای اضافی استفاده کنید
traversers. t1 .hostload = n تعداد رشته ها، n برای استفاده برای فهرست بندی همزمان آیتم ها مشخص می کند. 5 با تنظیم n بر اساس میزان باری که می خواهید روی مخزن خود وارد کنید، آزمایش کنید. با مقادیر 10 یا بالاتر شروع کنید.
schedule.pollQueueIntervalSecs = s تعداد ثانیه ها، s برای انتظار قبل از نظرسنجی مجدد مشخص می کند. تا زمانی که API موارد را در پاسخ نظرسنجی برمی‌گرداند، رابط محتوا به نظرسنجی موارد ادامه می‌دهد. هنگامی که پاسخ نظرسنجی خالی است، کانکتور قبل از تلاش مجدد برای s ثانیه منتظر می ماند. این تنظیم فقط توسط ListingConnector استفاده می شود 10 سعی کنید به 1 کاهش دهید.
traverser. t1 .pollRequest.statuses = status1 , status2 , … وضعیت ها، status1 ، status2 ، مواردی که باید فهرست شوند را مشخص می کند. برای مثال، تنظیم status1 روی NEW_ITEM و status2 روی MODIFIED به traverser t1 دستور می‌دهد که فقط موارد با آن وضعیت‌ها را فهرست کند. یک تراورس تمام وضعیت ها را بررسی می کند با داشتن نظرسنجی تراورس های مختلف برای وضعیت های مختلف آزمایش کنید.

برای اطلاعات بیشتر در مورد پارامترهای فایل پیکربندی، به پارامترهای پیکربندی ارائه شده توسط Google مراجعه کنید.

SDK در حین آپلود فایل های حجیم وقفه یا وقفه ایجاد می کند

اگر در حین آپلود فایل‌های بزرگ با وقفه‌ای در SDK مواجه شدید، با استفاده از وقفه زمانی بزرگ‌تری تعیین کنید. traverser.timeout= s (که در آن s = تعداد ثانیه ها). این مقدار مشخص می کند که نخ های کارگر چه مدت باید یک آیتم را پردازش کنند. مدت زمان پیش‌فرض در SDK 60 ثانیه برای رشته‌های تراورسر است. به‌علاوه، اگر با اتمام زمان درخواست‌های API منفرد مواجه شدید، از روش‌های زیر برای افزایش مقادیر مهلت درخواست استفاده کنید:

درخواست پارامتر مهلت زمانی توضیحات پیش فرض
indexingService.connectTimeoutSeconds برای نمایه سازی درخواست های API، وقفه اتصال. 120 ثانیه.
indexingService.readTimeoutSeconds خواندن مهلت زمانی برای نمایه سازی درخواست های API. 120 ثانیه.