یک رابط CSV راه اندازی کنید

این راهنما برای مدیران رابط CSV (مقادیر جدا شده با کاما) جستجوی گوگل کلود است که مسئول دانلود، پیکربندی، اجرا و نظارت بر رابط هستند.

این راهنما شامل دستورالعمل‌هایی برای این وظایف کلیدی است:

  • نرم‌افزار رابط CSV جستجوی ابری را دانلود کنید.
  • کانکتور را برای یک منبع داده CSV خاص پیکربندی کنید.
  • کانکتور را مستقر و اجرا کنید.

برای درک مفاهیم این سند، با Google Workspace، فایل‌های CSV و فهرست‌های کنترل دسترسی (ACL) آشنا باشید.

مروری بر رابط CSV جستجوی ابری

رابط CSV جستجوی ابری با هر فایل متنی مقادیر جدا شده با کاما (CSV) کار می‌کند. یک فایل CSV داده‌های جدولی را ذخیره می‌کند، که در آن هر خط یک رکورد داده است.

این رابط، ردیف‌ها را از یک فایل CSV استخراج کرده و با استفاده از API نمایه‌سازی، آنها را در Cloud Search نمایه می‌کند. پس از نمایه‌سازی، ردیف‌ها از طریق کلاینت‌های Cloud Search یا Query API قابل جستجو هستند. این رابط همچنین از ACLها برای کنترل دسترسی کاربر به محتوا پشتیبانی می‌کند.

می‌توانید کانکتور را روی لینوکس یا ویندوز نصب کنید. قبل از نصب، مطمئن شوید که اجزای زیر را دارید:

معمولاً، مدیر Google Workspace دامنه، این اعتبارنامه‌ها را ارائه می‌دهد.

مراحل استقرار

برای استقرار رابط CSV جستجوی ابری، این مراحل را دنبال کنید:

  1. نرم‌افزار کانکتور را نصب کنید
  2. پیکربندی کانکتور را مشخص کنید
  3. پیکربندی دسترسی به منبع داده Cloud Search
  4. پیکربندی دسترسی به فایل CSV
  5. نام ستون‌ها، کلیدهای منحصر به فرد و ستون‌های تاریخ و زمان را مشخص کنید
  6. ستون‌ها را برای URLهای نتایج جستجوی قابل کلیک مشخص کنید
  7. قالب‌های متادیتا و ستون‌ها را مشخص کنید
  8. زمانبندی پیمایش داده‌ها
  9. گزینه‌های ACL را مشخص کنید

۱. SDK را نصب کنید

SDK را در مخزن محلی Maven خود نصب کنید.

  1. مخزن SDK را از GitHub کپی کنید.

    $ git clone https://github.com/google-cloudsearch/connector-sdk.git
    $ cd connector-sdk/csv

  2. نسخه انتخابی خود را بررسی کنید:

    $ git checkout tags/v1-0.0.3

  3. کانکتور را بسازید:

    $ mvn package

  4. کانکتور را استخراج و نصب کنید:

    $ 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.

برای ایجاد یک فایل پیکربندی:

  1. یک ویرایشگر متن باز کنید و نام فایل را connector-config.properties بگذارید.
  2. پارامترهای پیکربندی را به صورت جفت‌های 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 هستند.

مقادیر قالب شامل موارد زیر است: DEFAULT ، EXCEL ، INFORMIX_UNLOAD ، INFORMIX_UNLOAD_CSV ، MYSQL ، RFC4180 ، ORACLE ، POSTGRESQL_CSV ، POSTGRESQL_TEXT و TDF . در صورت عدم تعیین، Cloud Search از DEFAULT استفاده می‌کند.

اصلاح کننده فرمت فایل csv.format. withMethod = value

اصلاحیه‌ای در نحوه‌ی مدیریت فایل توسط Cloud Search. متدهای ممکن از کلاس CSV CSVFormat در Apache Commons هستند و شامل متدهایی می‌شوند که یک کاراکتر، رشته یا مقدار بولی را می‌پذیرند.

برای مثال، برای مشخص کردن یک نقطه‌ویرگول به عنوان جداکننده، csv.format.withDelimiter=; استفاده کنید. برای نادیده گرفتن خطوط خالی، csv.format.withIgnoreEmptyLines=true استفاده کنید.

نوع کدگذاری فایل csv.fileEncoding= UTF-8

مجموعه کاراکتر جاوا برای استفاده. پیش‌فرض مجموعه کاراکتر پلتفرم.

۵. نام ستون‌ها را برای اندیس‌گذاری و ستون‌های کلید منحصر به فرد مشخص کنید

اطلاعات ستون را در فایل پیکربندی ارائه دهید.

تنظیم پارامتر
ستون‌ها برای فهرست‌بندی csv.csvColumns= movieId,movieTitle,description,actors,releaseDate,year,userratings...

نام ستون‌هایی که قرار است از فایل CSV اندیس‌گذاری شوند. به طور پیش‌فرض، ردیف اول CSV به عنوان سرصفحه استفاده می‌شود. اگر csv.csvColumns مشخص شده باشد، اولویت دارد. برای جلوگیری از اندیس‌گذاری ردیف اول به عنوان داده، زمانی که csv.csvColumns تنظیم شده است و ردیف اول حاوی سرصفحه است، csv.skipHeaderRecord=true را نیز تنظیم کنید.

ستون‌های کلید منحصر به فرد 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= movieTitle
itemMetadata.title.defaultValue= Gone with the Wind

ویژگی فراداده برای عنوان سند. مقدار پیش‌فرض یک رشته خالی است.

آدرس اینترنتی itemMetadata.sourceRepositoryUrl.field= url
itemMetadata.sourceRepositoryUrl.defaultValue= https://www.imdb.com/title/tt0031381/
ویژگی فراداده برای URL سند در نتایج جستجو.
مهر زمانی ایجاد شده itemMetadata.createTime.field= releaseDate
itemMetadata.createTime.defaultValue= 1940-01-17

ویژگی فراداده برای مهر زمانی ایجاد سند.

آخرین زمان اصلاح itemMetadata.updateTime.field= releaseDate
itemMetadata.updateTime.defaultValue= 1940-01-17

ویژگی فراداده برای آخرین مهر زمانی تغییر سند.

زبان سند itemMetadata.contentLanguage.field= languageCode
itemMetadata.contentLanguage.defaultValue= en-US

زبان محتوای اسنادی که نمایه‌سازی می‌شوند.

نوع شیء طرحواره itemMetadata.objectType.field= type
itemMetadata.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

کانکتور به جای اینکه منتظر انقضای اولین بازه بماند، در هنگام راه‌اندازی کانکتور یک پیمایش انجام می‌دهد. مقدار پیش‌فرض true.

۹. گزینه‌های ACL را مشخص کنید

این کانکتور از ACLها برای کنترل دسترسی استفاده می‌کند. اگر مخزن شما ACL ارائه می‌دهد، آنها را آپلود کنید. در غیر این صورت، ACLهای پیش‌فرض را پیکربندی کنید. defaultAcl.mode را روی مقداری غیر از none تنظیم کنید.

تنظیم پارامتر
حالت ACL defaultAcl.mode =fallback

الزامی. کانکتور فقط از حالت fallback پشتیبانی می‌کند.

نام ACL پیش‌فرض defaultAcl.name = VIRTUAL_CONTAINER_FOR_CONNECTOR_1

اختیاری. نام کانتینر مجازی مورد استفاده توسط کانکتور برای ACL های پیش‌فرض را لغو می‌کند. مقدار پیش‌فرض DEFAULT_ACL_VIRTUAL_CONTAINER است. اگر چندین کانکتور در حال فهرست‌بندی محتوا در یک منبع داده هستند، لغو این مورد را در نظر بگیرید.

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
دسترسی کامل به دامنه برای مشخص کردن اینکه هر رکورد ایندکس شده توسط هر کاربر در دامنه به صورت عمومی قابل دسترسی باشد، هر دو گزینه زیر را با مقادیر تنظیم کنید:
  • defaultAcl.mode =fallback
  • defaultAcl.public =true
ACL تعریف شده مشترک برای تعریف یک ACL مشترک برای هر رکورد، پارامترهای زیر را تنظیم کنید:
  • defaultAcl.mode =fallback
  • defaultAcl.public =false
  • defaultAcl.readers.groups = google: group1, group2
  • defaultAcl.readers.users = user1, user2, google: user3
  • defaultAcl.denied.groups = group3
  • defaultAcl.denied.users = user4, user5

کاربران و گروه‌ها به صورت دامنه محلی تعریف می‌شوند، مگر اینکه با پیشوند " google: " مشخص شوند.

کاربر یا گروه پیش‌فرض یک رشته خالی است. فقط در صورتی گزینه‌های کاربر و گروه را ارائه دهید که defaultAcl.public false باشد. برای چندین گروه و کاربر از یک لیست جدا شده با کاما استفاده کنید.

اگر defaultAcl.mode none باشد، رکوردها بدون ACL های مجزا قابل جستجو نیستند.

تعریف طرحواره

برای پشتیبانی از کوئری‌های داده‌های ساختاریافته، یک طرحواره برای منبع داده خود تنظیم کنید .

برای مثال، یک فایل CSV با اطلاعات زیر در مورد فیلم‌ها را در نظر بگیرید:

  1. شناسه فیلم
  2. عنوان فیلم
  3. توضیحات
  4. سال
  5. تاریخ انتشار
  6. بازیگران (چندین مقدار که با کاما (,) از هم جدا شده‌اند)
  7. ژانر (مقادیر چندگانه)
  8. رتبه‌بندی‌ها

بر اساس این ساختار، می‌توانید طرحواره زیر را برای منبع داده خود تعریف کنید:

{
  "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ها برای کنترل دسترسی کاربر به محتوا پشتیبانی می‌کند.

می‌توانید کانکتور را روی لینوکس یا ویندوز نصب کنید. قبل از نصب، مطمئن شوید که اجزای زیر را دارید:

معمولاً، مدیر Google Workspace دامنه، این اعتبارنامه‌ها را ارائه می‌دهد.

مراحل استقرار

برای استقرار رابط CSV جستجوی ابری، این مراحل را دنبال کنید:

  1. نرم‌افزار کانکتور را نصب کنید
  2. پیکربندی کانکتور را مشخص کنید
  3. پیکربندی دسترسی به منبع داده Cloud Search
  4. پیکربندی دسترسی به فایل CSV
  5. نام ستون‌ها، کلیدهای منحصر به فرد و ستون‌های تاریخ و زمان را مشخص کنید
  6. ستون‌ها را برای URLهای نتایج جستجوی قابل کلیک مشخص کنید
  7. قالب‌های متادیتا و ستون‌ها را مشخص کنید
  8. زمانبندی پیمایش داده‌ها
  9. گزینه‌های ACL را مشخص کنید

۱. SDK را نصب کنید

SDK را در مخزن محلی Maven خود نصب کنید.

  1. مخزن SDK را از GitHub کپی کنید.

    $ git clone https://github.com/google-cloudsearch/connector-sdk.git
    $ cd connector-sdk/csv

  2. نسخه انتخابی خود را بررسی کنید:

    $ git checkout tags/v1-0.0.3

  3. کانکتور را بسازید:

    $ mvn package

  4. کانکتور را استخراج و نصب کنید:

    $ 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.

برای ایجاد یک فایل پیکربندی:

  1. یک ویرایشگر متن باز کنید و نام فایل را connector-config.properties بگذارید.
  2. پارامترهای پیکربندی را به صورت جفت‌های 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 هستند.

مقادیر قالب شامل موارد زیر است: DEFAULT ، EXCEL ، INFORMIX_UNLOAD ، INFORMIX_UNLOAD_CSV ، MYSQL ، RFC4180 ، ORACLE ، POSTGRESQL_CSV ، POSTGRESQL_TEXT و TDF . در صورت عدم تعیین، Cloud Search از DEFAULT استفاده می‌کند.

اصلاح کننده فرمت فایل csv.format. withMethod = value

اصلاحیه‌ای در نحوه‌ی مدیریت فایل توسط Cloud Search. متدهای ممکن از کلاس CSV CSVFormat در Apache Commons هستند و شامل متدهایی می‌شوند که یک کاراکتر، رشته یا مقدار بولی را می‌پذیرند.

برای مثال، برای مشخص کردن یک نقطه‌ویرگول به عنوان جداکننده، csv.format.withDelimiter=; استفاده کنید. برای نادیده گرفتن خطوط خالی، csv.format.withIgnoreEmptyLines=true استفاده کنید.

نوع کدگذاری فایل csv.fileEncoding= UTF-8

مجموعه کاراکتر جاوا برای استفاده. پیش‌فرض مجموعه کاراکتر پلتفرم.

۵. نام ستون‌ها را برای اندیس‌گذاری و ستون‌های کلید منحصر به فرد مشخص کنید

اطلاعات ستون را در فایل پیکربندی ارائه دهید.

تنظیم پارامتر
ستون‌ها برای فهرست‌بندی csv.csvColumns= movieId,movieTitle,description,actors,releaseDate,year,userratings...

نام ستون‌هایی که قرار است از فایل CSV اندیس‌گذاری شوند. به طور پیش‌فرض، ردیف اول CSV به عنوان سرصفحه استفاده می‌شود. اگر csv.csvColumns مشخص شده باشد، اولویت دارد. برای جلوگیری از اندیس‌گذاری ردیف اول به عنوان داده، زمانی که csv.csvColumns تنظیم شده است و ردیف اول حاوی سرصفحه است، csv.skipHeaderRecord=true را نیز تنظیم کنید.

ستون‌های کلید منحصر به فرد 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= movieTitle
itemMetadata.title.defaultValue= Gone with the Wind

ویژگی فراداده برای عنوان سند. مقدار پیش‌فرض یک رشته خالی است.

آدرس اینترنتی itemMetadata.sourceRepositoryUrl.field= url
itemMetadata.sourceRepositoryUrl.defaultValue= https://www.imdb.com/title/tt0031381/
ویژگی فراداده برای URL سند در نتایج جستجو.
مهر زمانی ایجاد شده itemMetadata.createTime.field= releaseDate
itemMetadata.createTime.defaultValue= 1940-01-17

ویژگی فراداده برای مهر زمانی ایجاد سند.

آخرین زمان اصلاح itemMetadata.updateTime.field= releaseDate
itemMetadata.updateTime.defaultValue= 1940-01-17

ویژگی فراداده برای آخرین مهر زمانی تغییر سند.

زبان سند itemMetadata.contentLanguage.field= languageCode
itemMetadata.contentLanguage.defaultValue= en-US

زبان محتوای اسنادی که نمایه‌سازی می‌شوند.

نوع شیء طرحواره itemMetadata.objectType.field= type
itemMetadata.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

کانکتور به جای اینکه منتظر انقضای اولین بازه بماند، در هنگام راه‌اندازی کانکتور یک پیمایش انجام می‌دهد. مقدار پیش‌فرض true.

۹. گزینه‌های ACL را مشخص کنید

این کانکتور از ACLها برای کنترل دسترسی استفاده می‌کند. اگر مخزن شما ACL ارائه می‌دهد، آنها را آپلود کنید. در غیر این صورت، ACLهای پیش‌فرض را پیکربندی کنید. defaultAcl.mode را روی مقداری غیر از none تنظیم کنید.

تنظیم پارامتر
حالت ACL defaultAcl.mode =fallback

الزامی. کانکتور فقط از حالت fallback پشتیبانی می‌کند.

نام ACL پیش‌فرض defaultAcl.name = VIRTUAL_CONTAINER_FOR_CONNECTOR_1

اختیاری. نام کانتینر مجازی مورد استفاده توسط کانکتور برای ACL های پیش‌فرض را لغو می‌کند. مقدار پیش‌فرض DEFAULT_ACL_VIRTUAL_CONTAINER است. اگر چندین کانکتور در حال فهرست‌بندی محتوا در یک منبع داده هستند، لغو این مورد را در نظر بگیرید.

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
دسترسی کامل به دامنه برای مشخص کردن اینکه هر رکورد ایندکس شده توسط هر کاربر در دامنه به صورت عمومی قابل دسترسی باشد، هر دو گزینه زیر را با مقادیر تنظیم کنید:
  • defaultAcl.mode =fallback
  • defaultAcl.public =true
ACL تعریف شده مشترک برای تعریف یک ACL مشترک برای هر رکورد، پارامترهای زیر را تنظیم کنید:
  • defaultAcl.mode =fallback
  • defaultAcl.public =false
  • defaultAcl.readers.groups = google: group1, group2
  • defaultAcl.readers.users = user1, user2, google: user3
  • defaultAcl.denied.groups = group3
  • defaultAcl.denied.users = user4, user5

کاربران و گروه‌ها به صورت دامنه محلی تعریف می‌شوند، مگر اینکه با پیشوند " google: " مشخص شوند.

کاربر یا گروه پیش‌فرض یک رشته خالی است. فقط در صورتی گزینه‌های کاربر و گروه را ارائه دهید که defaultAcl.public false باشد. برای چندین گروه و کاربر از یک لیست جدا شده با کاما استفاده کنید.

اگر defaultAcl.mode none باشد، رکوردها بدون ACL های مجزا قابل جستجو نیستند.

تعریف طرحواره

برای پشتیبانی از کوئری‌های داده‌های ساختاریافته، یک طرحواره برای منبع داده خود تنظیم کنید .

برای مثال، یک فایل CSV با اطلاعات زیر در مورد فیلم‌ها را در نظر بگیرید:

  1. شناسه فیلم
  2. عنوان فیلم
  3. توضیحات
  4. سال
  5. تاریخ انتشار
  6. بازیگران (چندین مقدار که با کاما (,) از هم جدا شده‌اند)
  7. ژانر (مقادیر چندگانه)
  8. رتبه‌بندی‌ها

بر اساس این ساختار، می‌توانید طرحواره زیر را برای منبع داده خود تعریف کنید:

{
  "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 گزارش‌ها را در فایل‌ها ثبت کنید.