این راهنما برای مدیران رابط CSV (مقادیر جدا شده با کاما) جستجوی گوگل کلود است که مسئول دانلود، پیکربندی، اجرا و نظارت بر رابط هستند.
این راهنما شامل دستورالعملهایی برای این وظایف کلیدی است:
- نرمافزار رابط CSV جستجوی ابری را دانلود کنید.
- کانکتور را برای یک منبع داده CSV خاص پیکربندی کنید.
- کانکتور را مستقر و اجرا کنید.
برای درک مفاهیم این سند، با Google Workspace، فایلهای CSV و فهرستهای کنترل دسترسی (ACL) آشنا باشید.
مروری بر رابط CSV جستجوی ابری
رابط CSV جستجوی ابری با هر فایل متنی مقادیر جدا شده با کاما (CSV) کار میکند. یک فایل CSV دادههای جدولی را ذخیره میکند، که در آن هر خط یک رکورد داده است.
این رابط، ردیفها را از یک فایل CSV استخراج کرده و با استفاده از API نمایهسازی، آنها را در Cloud Search نمایه میکند. پس از نمایهسازی، ردیفها از طریق کلاینتهای Cloud Search یا Query API قابل جستجو هستند. این رابط همچنین از ACLها برای کنترل دسترسی کاربر به محتوا پشتیبانی میکند.
میتوانید کانکتور را روی لینوکس یا ویندوز نصب کنید. قبل از نصب، مطمئن شوید که اجزای زیر را دارید:
- جاوا JRE 1.8 روی رایانهای که کانکتور را اجرا میکند نصب شده باشد.
- اطلاعات Google Workspace برای ایجاد ارتباط:
- کلید خصوصی Google Workspace (حاوی شناسه حساب سرویس).
- شناسه منبع داده Google Workspace .
معمولاً، مدیر Google Workspace دامنه، این اعتبارنامهها را ارائه میدهد.
مراحل استقرار
برای استقرار رابط CSV جستجوی ابری، این مراحل را دنبال کنید:
- نرمافزار کانکتور را نصب کنید
- پیکربندی کانکتور را مشخص کنید
- پیکربندی دسترسی به منبع داده Cloud Search
- پیکربندی دسترسی به فایل CSV
- نام ستونها، کلیدهای منحصر به فرد و ستونهای تاریخ و زمان را مشخص کنید
- ستونها را برای URLهای نتایج جستجوی قابل کلیک مشخص کنید
- قالبهای متادیتا و ستونها را مشخص کنید
- زمانبندی پیمایش دادهها
- گزینههای ACL را مشخص کنید
۱. SDK را نصب کنید
SDK را در مخزن محلی Maven خود نصب کنید.
مخزن SDK را از GitHub کپی کنید.
$ git clone https://github.com/google-cloudsearch/connector-sdk.git $ cd connector-sdk/csv
نسخه انتخابی خود را بررسی کنید:
$ git checkout tags/v1-0.0.3
کانکتور را بسازید:
$ mvn package
کانکتور را استخراج و نصب کنید:
$ cp target/google-cloudsearch-csv-connector-v1-0.0.3.zip installation-dir $ cd installation-dir $ unzip google-cloudsearch-csv-connector-v1-0.0.3.zip $ cd google-cloudsearch-csv-connector-v1-0.0.3
۲. پیکربندی کانکتور CSV را مشخص کنید
شما رفتار کانکتور را از طریق پارامترهای موجود در فایل پیکربندی آن کنترل میکنید. پارامترهای قابل تنظیم عبارتند از:
- دسترسی به منبع داده.
- محل و تعاریف فایل CSV.
- ستونهای شناسه منحصر به فرد
- گزینههای پیمایش و ACL.
برای ایجاد یک فایل پیکربندی:
- یک ویرایشگر متن باز کنید و نام فایل را
connector-config.propertiesبگذارید. - پارامترهای پیکربندی را به صورت جفتهای
key=valueاضافه کنید، به طوری که هر جفت در یک خط جدید قرار گیرد. برای مثالی از یک فایل پیکربندی، به Example configuration file مراجعه کنید.
فایل پیکربندی را در همان دایرکتوری کانکتور نگه دارید تا ردیابی آن سادهتر شود. برای اطمینان از اینکه کانکتور فایل شما را تشخیص میدهد، مسیر آن را در خط فرمان مشخص کنید. در غیر این صورت، کانکتور به طور پیشفرض در connector-config.properties در دایرکتوری محلی شما قرار میگیرد. به بخش اجرای کانکتور مراجعه کنید.
۳. دسترسی به منبع داده Cloud Search را پیکربندی کنید
فایل پیکربندی باید پارامترهایی را برای دسترسی به منبع داده Cloud Search مشخص کند. شما به شناسه منبع داده، شناسه حساب سرویس و مسیر فایل کلید خصوصی حساب سرویس نیاز دارید.
| تنظیم | پارامتر |
| شناسه منبع داده | api.sourceId= 1234567890abcdefالزامی. شناسه منبع جستجوی ابری که توسط مدیر Google Workspace تنظیم شده است. |
| مسیر کلید خصوصی حساب سرویس | api.serviceAccountPrivateKeyFile= ./PrivateKey.jsonالزامی. فایل کلید حساب سرویس برای دسترسی به کانکتور. |
| شناسه منبع هویت | api.identitySourceId= x0987654321در صورت استفاده از کاربران و گروههای خارجی، الزامی است. شناسه منبع هویت که توسط مدیر Google Workspace تنظیم شده است. |
۴. پیکربندی پارامترهای فایل CSV
مسیر، فرمت و کدگذاری فایل را مشخص کنید.
| تنظیم | پارامتر |
| مسیر فایل CSV | csv.filePath= ./movie_content.csvالزامی. مسیر فایل برای اندیسگذاری. |
| فرمت فایل | csv.format= DEFAULTقالب فایل. مقادیر ممکن از کلاس CSV CSVFormat در Apache Commons هستند. مقادیر قالب شامل موارد زیر است: |
| اصلاح کننده فرمت فایل | csv.format. withMethod = valueاصلاحیهای در نحوهی مدیریت فایل توسط Cloud Search. متدهای ممکن از کلاس CSV CSVFormat در Apache Commons هستند و شامل متدهایی میشوند که یک کاراکتر، رشته یا مقدار بولی را میپذیرند. برای مثال، برای مشخص کردن یک نقطهویرگول به عنوان جداکننده، |
| نوع کدگذاری فایل | csv.fileEncoding= UTF-8مجموعه کاراکتر جاوا برای استفاده. پیشفرض مجموعه کاراکتر پلتفرم. |
۵. نام ستونها را برای اندیسگذاری و ستونهای کلید منحصر به فرد مشخص کنید
اطلاعات ستون را در فایل پیکربندی ارائه دهید.
| تنظیم | پارامتر |
| ستونها برای فهرستبندی | csv.csvColumns= movieId,movieTitle,description,actors,releaseDate,year,userratings... نام ستونهایی که قرار است از فایل CSV اندیسگذاری شوند. به طور پیشفرض، ردیف اول CSV به عنوان سرصفحه استفاده میشود. اگر |
| ستونهای کلید منحصر به فرد | csv.uniqueKeyColumns= movieIdستونهایی که برای تولید شناسه منحصر به فرد استفاده میشوند. پیشفرضها برابر با کد درهمسازی رکورد است. |
۶. ستونهایی را برای URLهای نتایج جستجوی قابل کلیک مشخص کنید
فعال کردن URL های قابل کلیک برای نتایج جستجو.
| تنظیم | پارامتر |
| قالب URL نتایج جستجو | url.format= https://mymoviesite.com/movies/{0}الزامی. قالبی که برای ساخت URL نمایش استفاده میشود. |
| پارامترهای آدرس اینترنتی | url.columns= movieIdالزامی. نام ستونهای CSV که مقادیر آنها برای تولید URL نمایش رکورد استفاده خواهد شد. |
| پارامترهای URL نتایج جستجو برای escape کردن | url.columnsToEscape= movieIdاختیاری. نام ستونهای CSV که مقادیر آنها برای تولید URL نمای معتبر، URL escape شده خواهد بود. |
۷. مشخص کردن فرادادهها، قالب ستونها و کیفیت جستجو
میتوانید پارامترهایی را به فایل پیکربندی اضافه کنید که موارد زیر را مشخص میکنند:
پارامترهای پیکربندی فراداده
این پارامترها ستونهایی را برای پر کردن فرادادههای آیتم توصیف میکنند.
| تنظیم | پارامتر |
| عنوان | itemMetadata.title.field= movieTitleitemMetadata.title.defaultValue= Gone with the Windویژگی فراداده برای عنوان سند. مقدار پیشفرض یک رشته خالی است. |
| آدرس اینترنتی | itemMetadata.sourceRepositoryUrl.field= urlitemMetadata.sourceRepositoryUrl.defaultValue= https://www.imdb.com/title/tt0031381/ویژگی فراداده برای URL سند در نتایج جستجو. |
| مهر زمانی ایجاد شده | itemMetadata.createTime.field= releaseDateitemMetadata.createTime.defaultValue= 1940-01-17ویژگی فراداده برای مهر زمانی ایجاد سند. |
| آخرین زمان اصلاح | itemMetadata.updateTime.field= releaseDateitemMetadata.updateTime.defaultValue= 1940-01-17ویژگی فراداده برای آخرین مهر زمانی تغییر سند. |
| زبان سند | itemMetadata.contentLanguage.field= languageCodeitemMetadata.contentLanguage.defaultValue= en-USزبان محتوای اسنادی که نمایهسازی میشوند. |
| نوع شیء طرحواره | itemMetadata.objectType.field= typeitemMetadata.objectType.defaultValue= movieنوع شیء مورد استفاده توسط رابط، همانطور که در طرحواره تعریف شده است. اگر این ویژگی مشخص نشده باشد، رابط هیچ داده ساختاریافتهای را فهرستبندی نمیکند. |
قالبهای تاریخ و زمان
این پارامتر قالبهای تاریخ و زمان اضافی را برای تجزیه مقادیر رشتهای به فیلدهای تاریخ یا تاریخ-زمان مشخص میکند.
| تنظیم | پارامتر |
| قالبهای تاریخ و زمان اضافی | structuredData.dateTimePatterns= MM/dd/uuuu HH:mm:ssXXXفهرستی از الگوهای اضافی java.time.format.DateTimeFormatter که با نقطه ویرگول از هم جدا شدهاند. این الگوها هنگام تجزیه مقادیر رشتهای برای هر فیلد تاریخ یا تاریخ-زمان در فراداده یا طرحواره استفاده میشوند. مقدار پیشفرض یک لیست خالی است، اما قالبهای RFC 3339 و RFC 1123 همیشه پشتیبانی میشوند. |
قالبهای ستون
این پارامترها نحوه تجزیه ستونها در فایل CSV را مشخص میکنند.
| تنظیم | پارامتر |
| رد کردن هدر | csv.skipHeaderRecord=trueخط اول را نادیده بگیرید. مقدار پیشفرض false است. |
| ستونهای چند مقداری | csv.multiValueColumns= genre,actorsنام ستونها با چندین مقدار |
| جداکننده برای ستونهای چند مقداری | csv.multiValue.genre= ;جداکننده برای ستونهای چند مقداری. جداکننده پیشفرض کاما است. |
کیفیت جستجو
رابط از یک الگوی محتوا برای قالببندی رکوردها استفاده میکند. فیلد عنوان بالاترین اولویت را دارد. میتوانید سطوح اولویت (بالا، متوسط، پایین) را به فیلدهای دیگر اختصاص دهید.
| تنظیم | پارامتر |
| عنوان محتوا | contentTemplate.csv.title= movieTitleعنوان محتوا، باکیفیتترین فیلد جستجو است. |
| کیفیت جستجوی بالا برای فیلدهای محتوا | contentTemplate.csv.quality.high= actorsفیلدهای محتوا با کیفیت جستجوی بالا مقداردهی میشوند. پیشفرض یک رشته خالی است. |
| کیفیت پایین جستجو برای فیلدهای محتوا | contentTemplate.csv.quality.low= genreبه فیلدهای محتوا مقدار کیفیت جستجوی پایین داده میشود. مقدار پیشفرض یک رشته خالی است. |
| کیفیت جستجوی متوسط برای فیلدهای محتوا | contentTemplate.csv.quality.medium= descriptionبه فیلدهای محتوا مقدار کیفیت جستجوی متوسط داده میشود. مقدار پیشفرض یک رشته خالی است. |
| فیلدهای محتوای نامشخص | contentTemplate.csv.unmappedColumnsMode= IGNOREنحوه مدیریت فیلدهای محتوای نامشخص توسط رابط. مقادیر معتبر عبارتند از:
مقدار پیشفرض، APPEND است. |
۸. زمانبندی پیمایش دادهها
پیمایش (traversal) فرآیند کشف محتوا است. رابط (connector) ردیفهای CSV را پیمایش کرده و آنها را با استفاده از Indexing API فهرستبندی میکند. رابط CSV فقط پیمایش کامل را انجام میدهد.
| تنظیم | پارامتر |
| فاصله پیمایش | schedule.traversalIntervalSecs = 7200فاصله بین پیمایشهای کامل بر حسب ثانیه. مقدار پیشفرض ۸۶۴۰۰ (یک روز) است. |
| پیمایش در هنگام راهاندازی | schedule.performTraversalOnStart = false کانکتور به جای اینکه منتظر انقضای اولین بازه بماند، در هنگام راهاندازی کانکتور یک پیمایش انجام میدهد. مقدار پیشفرض |
۹. گزینههای ACL را مشخص کنید
این کانکتور از ACLها برای کنترل دسترسی استفاده میکند. اگر مخزن شما ACL ارائه میدهد، آنها را آپلود کنید. در غیر این صورت، ACLهای پیشفرض را پیکربندی کنید. defaultAcl.mode را روی مقداری غیر از none تنظیم کنید.
| تنظیم | پارامتر |
| حالت ACL | defaultAcl.mode =fallbackالزامی. کانکتور فقط از حالت fallback پشتیبانی میکند. |
| نام ACL پیشفرض | defaultAcl.name = VIRTUAL_CONTAINER_FOR_CONNECTOR_1 اختیاری. نام کانتینر مجازی مورد استفاده توسط کانکتور برای ACL های پیشفرض را لغو میکند. مقدار پیشفرض |
| ACL عمومی پیشفرض | defaultAcl.public = trueکل مخزن را روی دسترسی به دامنه عمومی تنظیم میکند. مقدار پیشفرض false است. |
| خوانندگان گروه ACL مشترک | defaultAcl.readers.groups = google: group1, group2 |
| خوانندگان ACL رایج | defaultAcl.readers.users = user1, user2, google: user3 |
| خوانندگان گروهی که ACL مشترک آنها را رد کرد | defaultAcl.denied.groups = group3 |
| مشترک Acl خوانندگان را رد کرد | defaultAcl.denied.users = user4, user5 |
| دسترسی کامل به دامنه | برای مشخص کردن اینکه هر رکورد ایندکس شده توسط هر کاربر در دامنه به صورت عمومی قابل دسترسی باشد، هر دو گزینه زیر را با مقادیر تنظیم کنید:
|
| ACL تعریف شده مشترک | برای تعریف یک ACL مشترک برای هر رکورد، پارامترهای زیر را تنظیم کنید:
کاربران و گروهها به صورت دامنه محلی تعریف میشوند، مگر اینکه با پیشوند " کاربر یا گروه پیشفرض یک رشته خالی است. فقط در صورتی گزینههای کاربر و گروه را ارائه دهید که اگر |
تعریف طرحواره
برای پشتیبانی از کوئریهای دادههای ساختاریافته، یک طرحواره برای منبع داده خود تنظیم کنید .
برای مثال، یک فایل CSV با اطلاعات زیر در مورد فیلمها را در نظر بگیرید:
- شناسه فیلم
- عنوان فیلم
- توضیحات
- سال
- تاریخ انتشار
- بازیگران (چندین مقدار که با کاما (,) از هم جدا شدهاند)
- ژانر (مقادیر چندگانه)
- رتبهبندیها
بر اساس این ساختار، میتوانید طرحواره زیر را برای منبع داده خود تعریف کنید:
{
"objectDefinitions": [
{
"name": "movie",
"propertyDefinitions": [
{
"name": "actors",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"operatorOptions": {
"operatorName": "actor"
}
}
},
{
"name": "releaseDate",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "released",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
},
{
"name": "movieTitle",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"textPropertyOptions": {
"retrievalImportance": {
"importance": "HIGHEST"
},
"operatorOptions": {
"operatorName": "title"
}
}
},
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"enumPropertyOptions": {
"operatorOptions": {
"operatorName": "genre"
},
"possibleValues": [
{
"stringValue": "Action"
},
{
"stringValue": "Documentary"
},
{
"stringValue": "Drama"
},
{
"stringValue": "Crime"
},
{
"stringValue": "Sci-fi"
}
]
}
},
{
"name": "userRating",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": true,
"integerPropertyOptions": {
"orderedRanking": "ASCENDING",
"maximumValue": "10",
"operatorOptions": {
"operatorName": "score",
"lessThanOperatorName": "scorebelow",
"greaterThanOperatorName": "scoreabove"
}
}
}
]
}
]
}
فایل پیکربندی نمونه
فایل پیکربندی نمونه زیر جفتهای پارامتر key=value را نشان میدهد که رفتار یک کانکتور نمونه را تعریف میکنند.
# data source access
api.sourceId=1234567890abcd
api.serviceAccountPrivateKeyFile=./PrivateKey.json
# CSV data structure
csv.filePath=./movie_content.csv
csv.csvColumns=movieId,movieTitle,description,releaseYear,genre,actors,ratings,releaseDate
csv.skipHeaderRecord=true
url.format=https://mymoviesite.com/movies/{0}
url.columns=movieId
csv.datetimeFormat.releaseDate=yyyy-mm-dd
csv.multiValueColumns=genre,actors
csv.multiValue.genre=;
contentTemplate.csv.title=movieTitle
# metadata structured data and content
itemMetadata.title.field=movieTitle
itemMetadata.createTime.field=releaseDate
itemMetadata.contentLanguage.defaultValue=en-US
itemMetadata.objectType.defaultValue=movie
contentTemplate.csv.quality.medium=description
contentTemplate.csv.unmappedColumnsMode=IGNORE
#ACLs
defaultAcl.mode=fallback
defaultAcl.public=true
کانکتور را اجرا کنید
برای اجرای کانکتور از خط فرمان:
$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config
به طور پیشفرض، گزارشهای اتصال در خروجی استاندارد موجود هستند. میتوانید با مشخص کردن logging.properties گزارشها را در فایلها ثبت کنید.
این راهنما برای مدیران رابط CSV (مقادیر جدا شده با کاما) جستجوی گوگل کلود است که مسئول دانلود، پیکربندی، اجرا و نظارت بر رابط هستند.
این راهنما شامل دستورالعملهایی برای این وظایف کلیدی است:
- نرمافزار رابط CSV جستجوی ابری را دانلود کنید.
- کانکتور را برای یک منبع داده CSV خاص پیکربندی کنید.
- کانکتور را مستقر و اجرا کنید.
برای درک مفاهیم این سند، با Google Workspace، فایلهای CSV و فهرستهای کنترل دسترسی (ACL) آشنا باشید.
مروری بر رابط CSV جستجوی ابری
رابط CSV جستجوی ابری با هر فایل متنی مقادیر جدا شده با کاما (CSV) کار میکند. یک فایل CSV دادههای جدولی را ذخیره میکند، که در آن هر خط یک رکورد داده است.
این رابط، ردیفها را از یک فایل CSV استخراج کرده و با استفاده از API نمایهسازی، آنها را در Cloud Search نمایه میکند. پس از نمایهسازی، ردیفها از طریق کلاینتهای Cloud Search یا Query API قابل جستجو هستند. این رابط همچنین از ACLها برای کنترل دسترسی کاربر به محتوا پشتیبانی میکند.
میتوانید کانکتور را روی لینوکس یا ویندوز نصب کنید. قبل از نصب، مطمئن شوید که اجزای زیر را دارید:
- جاوا JRE 1.8 روی رایانهای که کانکتور را اجرا میکند نصب شده باشد.
- اطلاعات Google Workspace برای ایجاد ارتباط:
- کلید خصوصی Google Workspace (حاوی شناسه حساب سرویس).
- شناسه منبع داده Google Workspace .
معمولاً، مدیر Google Workspace دامنه، این اعتبارنامهها را ارائه میدهد.
مراحل استقرار
برای استقرار رابط CSV جستجوی ابری، این مراحل را دنبال کنید:
- نرمافزار کانکتور را نصب کنید
- پیکربندی کانکتور را مشخص کنید
- پیکربندی دسترسی به منبع داده Cloud Search
- پیکربندی دسترسی به فایل CSV
- نام ستونها، کلیدهای منحصر به فرد و ستونهای تاریخ و زمان را مشخص کنید
- ستونها را برای URLهای نتایج جستجوی قابل کلیک مشخص کنید
- قالبهای متادیتا و ستونها را مشخص کنید
- زمانبندی پیمایش دادهها
- گزینههای ACL را مشخص کنید
۱. SDK را نصب کنید
SDK را در مخزن محلی Maven خود نصب کنید.
مخزن SDK را از GitHub کپی کنید.
$ git clone https://github.com/google-cloudsearch/connector-sdk.git $ cd connector-sdk/csv
نسخه انتخابی خود را بررسی کنید:
$ git checkout tags/v1-0.0.3
کانکتور را بسازید:
$ mvn package
کانکتور را استخراج و نصب کنید:
$ cp target/google-cloudsearch-csv-connector-v1-0.0.3.zip installation-dir $ cd installation-dir $ unzip google-cloudsearch-csv-connector-v1-0.0.3.zip $ cd google-cloudsearch-csv-connector-v1-0.0.3
۲. پیکربندی کانکتور CSV را مشخص کنید
شما رفتار کانکتور را از طریق پارامترهای موجود در فایل پیکربندی آن کنترل میکنید. پارامترهای قابل تنظیم عبارتند از:
- دسترسی به منبع داده.
- محل و تعاریف فایل CSV.
- ستونهای شناسه منحصر به فرد
- گزینههای پیمایش و ACL.
برای ایجاد یک فایل پیکربندی:
- یک ویرایشگر متن باز کنید و نام فایل را
connector-config.propertiesبگذارید. - پارامترهای پیکربندی را به صورت جفتهای
key=valueاضافه کنید، به طوری که هر جفت در یک خط جدید قرار گیرد. برای مثالی از یک فایل پیکربندی، به Example configuration file مراجعه کنید.
فایل پیکربندی را در همان دایرکتوری کانکتور نگه دارید تا ردیابی آن سادهتر شود. برای اطمینان از اینکه کانکتور فایل شما را تشخیص میدهد، مسیر آن را در خط فرمان مشخص کنید. در غیر این صورت، کانکتور به طور پیشفرض در connector-config.properties در دایرکتوری محلی شما قرار میگیرد. به بخش اجرای کانکتور مراجعه کنید.
۳. دسترسی به منبع داده Cloud Search را پیکربندی کنید
فایل پیکربندی باید پارامترهایی را برای دسترسی به منبع داده Cloud Search مشخص کند. شما به شناسه منبع داده، شناسه حساب سرویس و مسیر فایل کلید خصوصی حساب سرویس نیاز دارید.
| تنظیم | پارامتر |
| شناسه منبع داده | api.sourceId= 1234567890abcdefالزامی. شناسه منبع جستجوی ابری که توسط مدیر Google Workspace تنظیم شده است. |
| مسیر کلید خصوصی حساب سرویس | api.serviceAccountPrivateKeyFile= ./PrivateKey.jsonالزامی. فایل کلید حساب سرویس برای دسترسی به کانکتور. |
| شناسه منبع هویت | api.identitySourceId= x0987654321در صورت استفاده از کاربران و گروههای خارجی، الزامی است. شناسه منبع هویت که توسط مدیر Google Workspace تنظیم شده است. |
۴. پیکربندی پارامترهای فایل CSV
مسیر، فرمت و کدگذاری فایل را مشخص کنید.
| تنظیم | پارامتر |
| مسیر فایل CSV | csv.filePath= ./movie_content.csvالزامی. مسیر فایل برای اندیسگذاری. |
| فرمت فایل | csv.format= DEFAULTقالب فایل. مقادیر ممکن از کلاس CSV CSVFormat در Apache Commons هستند. مقادیر قالب شامل موارد زیر است: |
| اصلاح کننده فرمت فایل | csv.format. withMethod = valueاصلاحیهای در نحوهی مدیریت فایل توسط Cloud Search. متدهای ممکن از کلاس CSV CSVFormat در Apache Commons هستند و شامل متدهایی میشوند که یک کاراکتر، رشته یا مقدار بولی را میپذیرند. برای مثال، برای مشخص کردن یک نقطهویرگول به عنوان جداکننده، |
| نوع کدگذاری فایل | csv.fileEncoding= UTF-8مجموعه کاراکتر جاوا برای استفاده. پیشفرض مجموعه کاراکتر پلتفرم. |
۵. نام ستونها را برای اندیسگذاری و ستونهای کلید منحصر به فرد مشخص کنید
اطلاعات ستون را در فایل پیکربندی ارائه دهید.
| تنظیم | پارامتر |
| ستونها برای فهرستبندی | csv.csvColumns= movieId,movieTitle,description,actors,releaseDate,year,userratings... نام ستونهایی که قرار است از فایل CSV اندیسگذاری شوند. به طور پیشفرض، ردیف اول CSV به عنوان سرصفحه استفاده میشود. اگر |
| ستونهای کلید منحصر به فرد | csv.uniqueKeyColumns= movieIdستونهایی که برای تولید شناسه منحصر به فرد استفاده میشوند. پیشفرضها برابر با کد درهمسازی رکورد است. |
۶. ستونهایی را برای URLهای نتایج جستجوی قابل کلیک مشخص کنید
فعال کردن URL های قابل کلیک برای نتایج جستجو.
| تنظیم | پارامتر |
| قالب URL نتایج جستجو | url.format= https://mymoviesite.com/movies/{0}الزامی. قالبی که برای ساخت URL نمایش استفاده میشود. |
| پارامترهای آدرس اینترنتی | url.columns= movieIdالزامی. نام ستونهای CSV که مقادیر آنها برای تولید URL نمایش رکورد استفاده خواهد شد. |
| پارامترهای URL نتایج جستجو برای escape کردن | url.columnsToEscape= movieIdاختیاری. نام ستونهای CSV که مقادیر آنها برای تولید URL نمای معتبر، URL escape شده خواهد بود. |
۷. مشخص کردن فرادادهها، قالب ستونها و کیفیت جستجو
میتوانید پارامترهایی را به فایل پیکربندی اضافه کنید که موارد زیر را مشخص میکنند:
پارامترهای پیکربندی فراداده
این پارامترها ستونهایی را برای پر کردن فرادادههای آیتم توصیف میکنند.
| تنظیم | پارامتر |
| عنوان | itemMetadata.title.field= movieTitleitemMetadata.title.defaultValue= Gone with the Windویژگی فراداده برای عنوان سند. مقدار پیشفرض یک رشته خالی است. |
| آدرس اینترنتی | itemMetadata.sourceRepositoryUrl.field= urlitemMetadata.sourceRepositoryUrl.defaultValue= https://www.imdb.com/title/tt0031381/ویژگی فراداده برای URL سند در نتایج جستجو. |
| مهر زمانی ایجاد شده | itemMetadata.createTime.field= releaseDateitemMetadata.createTime.defaultValue= 1940-01-17ویژگی فراداده برای مهر زمانی ایجاد سند. |
| آخرین زمان اصلاح | itemMetadata.updateTime.field= releaseDateitemMetadata.updateTime.defaultValue= 1940-01-17ویژگی فراداده برای آخرین مهر زمانی تغییر سند. |
| زبان سند | itemMetadata.contentLanguage.field= languageCodeitemMetadata.contentLanguage.defaultValue= en-USزبان محتوای اسنادی که نمایهسازی میشوند. |
| نوع شیء طرحواره | itemMetadata.objectType.field= typeitemMetadata.objectType.defaultValue= movieنوع شیء مورد استفاده توسط رابط، همانطور که در طرحواره تعریف شده است. اگر این ویژگی مشخص نشده باشد، رابط هیچ داده ساختاریافتهای را فهرستبندی نمیکند. |
قالبهای تاریخ و زمان
این پارامتر قالبهای تاریخ و زمان اضافی را برای تجزیه مقادیر رشتهای به فیلدهای تاریخ یا تاریخ-زمان مشخص میکند.
| تنظیم | پارامتر |
| قالبهای تاریخ و زمان اضافی | structuredData.dateTimePatterns= MM/dd/uuuu HH:mm:ssXXXفهرستی از الگوهای اضافی java.time.format.DateTimeFormatter که با نقطه ویرگول از هم جدا شدهاند. این الگوها هنگام تجزیه مقادیر رشتهای برای هر فیلد تاریخ یا تاریخ-زمان در فراداده یا طرحواره استفاده میشوند. مقدار پیشفرض یک لیست خالی است، اما قالبهای RFC 3339 و RFC 1123 همیشه پشتیبانی میشوند. |
قالبهای ستون
این پارامترها نحوه تجزیه ستونها در فایل CSV را مشخص میکنند.
| تنظیم | پارامتر |
| رد کردن هدر | csv.skipHeaderRecord=trueخط اول را نادیده بگیرید. مقدار پیشفرض false است. |
| ستونهای چند مقداری | csv.multiValueColumns= genre,actorsنام ستونها با چندین مقدار |
| جداکننده برای ستونهای چند مقداری | csv.multiValue.genre= ;جداکننده برای ستونهای چند مقداری. جداکننده پیشفرض کاما است. |
کیفیت جستجو
رابط از یک الگوی محتوا برای قالببندی رکوردها استفاده میکند. فیلد عنوان بالاترین اولویت را دارد. میتوانید سطوح اولویت (بالا، متوسط، پایین) را به فیلدهای دیگر اختصاص دهید.
| تنظیم | پارامتر |
| عنوان محتوا | contentTemplate.csv.title= movieTitleعنوان محتوا، باکیفیتترین فیلد جستجو است. |
| کیفیت جستجوی بالا برای فیلدهای محتوا | contentTemplate.csv.quality.high= actorsفیلدهای محتوا با کیفیت جستجوی بالا مقداردهی میشوند. پیشفرض یک رشته خالی است. |
| کیفیت پایین جستجو برای فیلدهای محتوا | contentTemplate.csv.quality.low= genreبه فیلدهای محتوا مقدار کیفیت جستجوی پایین داده میشود. مقدار پیشفرض یک رشته خالی است. |
| کیفیت جستجوی متوسط برای فیلدهای محتوا | contentTemplate.csv.quality.medium= descriptionبه فیلدهای محتوا مقدار کیفیت جستجوی متوسط داده میشود. مقدار پیشفرض یک رشته خالی است. |
| فیلدهای محتوای نامشخص | contentTemplate.csv.unmappedColumnsMode= IGNOREنحوه مدیریت فیلدهای محتوای نامشخص توسط رابط. مقادیر معتبر عبارتند از:
مقدار پیشفرض، APPEND است. |
۸. زمانبندی پیمایش دادهها
پیمایش (traversal) فرآیند کشف محتوا است. رابط (connector) ردیفهای CSV را پیمایش کرده و آنها را با استفاده از Indexing API فهرستبندی میکند. رابط CSV فقط پیمایش کامل را انجام میدهد.
| تنظیم | پارامتر |
| فاصله پیمایش | schedule.traversalIntervalSecs = 7200فاصله بین پیمایشهای کامل بر حسب ثانیه. مقدار پیشفرض ۸۶۴۰۰ (یک روز) است. |
| پیمایش در هنگام راهاندازی | schedule.performTraversalOnStart = false کانکتور به جای اینکه منتظر انقضای اولین بازه بماند، در هنگام راهاندازی کانکتور یک پیمایش انجام میدهد. مقدار پیشفرض |
۹. گزینههای ACL را مشخص کنید
این کانکتور از ACLها برای کنترل دسترسی استفاده میکند. اگر مخزن شما ACL ارائه میدهد، آنها را آپلود کنید. در غیر این صورت، ACLهای پیشفرض را پیکربندی کنید. defaultAcl.mode را روی مقداری غیر از none تنظیم کنید.
| تنظیم | پارامتر |
| حالت ACL | defaultAcl.mode =fallbackالزامی. کانکتور فقط از حالت fallback پشتیبانی میکند. |
| نام ACL پیشفرض | defaultAcl.name = VIRTUAL_CONTAINER_FOR_CONNECTOR_1 اختیاری. نام کانتینر مجازی مورد استفاده توسط کانکتور برای ACL های پیشفرض را لغو میکند. مقدار پیشفرض |
| ACL عمومی پیشفرض | defaultAcl.public = trueکل مخزن را روی دسترسی به دامنه عمومی تنظیم میکند. مقدار پیشفرض false است. |
| خوانندگان گروه ACL مشترک | defaultAcl.readers.groups = google: group1, group2 |
| خوانندگان ACL رایج | defaultAcl.readers.users = user1, user2, google: user3 |
| خوانندگان گروهی که ACL مشترک آنها را رد کرد | defaultAcl.denied.groups = group3 |
| مشترک Acl خوانندگان را رد کرد | defaultAcl.denied.users = user4, user5 |
| دسترسی کامل به دامنه | برای مشخص کردن اینکه هر رکورد ایندکس شده توسط هر کاربر در دامنه به صورت عمومی قابل دسترسی باشد، هر دو گزینه زیر را با مقادیر تنظیم کنید:
|
| ACL تعریف شده مشترک | برای تعریف یک ACL مشترک برای هر رکورد، پارامترهای زیر را تنظیم کنید:
کاربران و گروهها به صورت دامنه محلی تعریف میشوند، مگر اینکه با پیشوند " کاربر یا گروه پیشفرض یک رشته خالی است. فقط در صورتی گزینههای کاربر و گروه را ارائه دهید که اگر |
تعریف طرحواره
برای پشتیبانی از کوئریهای دادههای ساختاریافته، یک طرحواره برای منبع داده خود تنظیم کنید .
برای مثال، یک فایل CSV با اطلاعات زیر در مورد فیلمها را در نظر بگیرید:
- شناسه فیلم
- عنوان فیلم
- توضیحات
- سال
- تاریخ انتشار
- بازیگران (چندین مقدار که با کاما (,) از هم جدا شدهاند)
- ژانر (مقادیر چندگانه)
- رتبهبندیها
بر اساس این ساختار، میتوانید طرحواره زیر را برای منبع داده خود تعریف کنید:
{
"objectDefinitions": [
{
"name": "movie",
"propertyDefinitions": [
{
"name": "actors",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"operatorOptions": {
"operatorName": "actor"
}
}
},
{
"name": "releaseDate",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "released",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
},
{
"name": "movieTitle",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"textPropertyOptions": {
"retrievalImportance": {
"importance": "HIGHEST"
},
"operatorOptions": {
"operatorName": "title"
}
}
},
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"enumPropertyOptions": {
"operatorOptions": {
"operatorName": "genre"
},
"possibleValues": [
{
"stringValue": "Action"
},
{
"stringValue": "Documentary"
},
{
"stringValue": "Drama"
},
{
"stringValue": "Crime"
},
{
"stringValue": "Sci-fi"
}
]
}
},
{
"name": "userRating",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": true,
"integerPropertyOptions": {
"orderedRanking": "ASCENDING",
"maximumValue": "10",
"operatorOptions": {
"operatorName": "score",
"lessThanOperatorName": "scorebelow",
"greaterThanOperatorName": "scoreabove"
}
}
}
]
}
]
}
فایل پیکربندی نمونه
فایل پیکربندی نمونه زیر جفتهای پارامتر key=value را نشان میدهد که رفتار یک کانکتور نمونه را تعریف میکنند.
# data source access
api.sourceId=1234567890abcd
api.serviceAccountPrivateKeyFile=./PrivateKey.json
# CSV data structure
csv.filePath=./movie_content.csv
csv.csvColumns=movieId,movieTitle,description,releaseYear,genre,actors,ratings,releaseDate
csv.skipHeaderRecord=true
url.format=https://mymoviesite.com/movies/{0}
url.columns=movieId
csv.datetimeFormat.releaseDate=yyyy-mm-dd
csv.multiValueColumns=genre,actors
csv.multiValue.genre=;
contentTemplate.csv.title=movieTitle
# metadata structured data and content
itemMetadata.title.field=movieTitle
itemMetadata.createTime.field=releaseDate
itemMetadata.contentLanguage.defaultValue=en-US
itemMetadata.objectType.defaultValue=movie
contentTemplate.csv.quality.medium=description
contentTemplate.csv.unmappedColumnsMode=IGNORE
#ACLs
defaultAcl.mode=fallback
defaultAcl.public=true
کانکتور را اجرا کنید
برای اجرای کانکتور از خط فرمان:
$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config
به طور پیشفرض، گزارشهای اتصال در خروجی استاندارد موجود هستند. میتوانید با مشخص کردن logging.properties گزارشها را در فایلها ثبت کنید.