نشر موصل CSV

هذا الدليل مخصّص لمشرفي الموصلات في Google Cloud Search (قيم مفصولة بفواصل)، أي أي مستخدم مسؤول عن تنزيل الموصِّل وإعداده وتشغيله ومراقبته.

يتضمن هذا الدليل إرشادات لأداء المهام الرئيسية المتعلقة بنشر موصل CSV:

  • تنزيل برنامج موصِّل ملف CSV في Google Cloud Search
  • إعداد الموصِّل لاستخدامه مع مصدر بيانات CSV محدّد
  • نشر الموصل وتشغيله

لفهم المفاهيم الواردة في هذا المستند، يجب أن تكون على دراية بأساسيات Google Workspace وملفات CSV وقوائم التحكم بالوصول (ACL).

نظرة عامة على موصِّل ملف CSV في Google Cloud Search

يعمل موصِّل CSV في Cloud Search مع أي ملف نصي يحتوي على قيم مفصولة بفواصل (CSV). يخزن ملف CSV البيانات المجدولة، وكل سطر من الملف عبارة عن سجل بيانات.

يستخرج موصل CSV في Google Cloud Search صفوفًا فردية من ملف CSV ويفهرسها في Cloud Search عبر واجهة برمجة التطبيقات للفهرسة في Cloud Search. بعد الفهرسة بنجاح، يمكن البحث في الصفوف الفردية من ملفات CSV من خلال برامج Cloud Search أو واجهة برمجة تطبيقات Query في Cloud Search. يدعم موصل CSV أيضًا التحكم في وصول المستخدمين إلى المحتوى في نتائج البحث، باستخدام قوائم التحكم بالوصول.

يمكن تثبيت موصِّل ملف CSV في Google Cloud Search على نظام التشغيل Linux أو Windows. قبل نشر موصِّل ملف CSV في Google Cloud Search، تأكَّد من توفُّر المكونات المطلوبة التالية:

  • تم تثبيت الإصدار 1.8 من Java JRE على جهاز كمبيوتر يُشغِّل موصِّل ملف CSV في Google Cloud Search
  • معلومات Google Workspace المطلوبة لإنشاء علاقات بين Google Cloud Search ومصدر البيانات:

    يمكن عادةً لمشرف Google Workspace في النطاق أن يقدّم لك بيانات الاعتماد هذه.

خطوات النشر

لنشر موصِّل ملف CSV في Google Cloud Search، اتّبِع الخطوات التالية:

  1. تثبيت برنامج موصِّل ملف CSV في Google Cloud Search
  2. تحديد إعدادات موصل CSV
  3. ضبط الوصول إلى مصدر بيانات Google Cloud Search
  4. ضبط الوصول إلى ملف CSV
  5. تحديد أسماء الأعمدة لفهرستها والأعمدة الرئيسية الفريدة وأعمدة التاريخ والوقت
  6. تحديد الأعمدة المراد استخدامها في عناوين URL لنتائج البحث القابلة للنقر
  7. تحديد معلومات البيانات الوصفية وتنسيقات الأعمدة
  8. جدولة عملية اجتياز البيانات
  9. تحديد خيارات قائمة التحكم بالوصول (ACL)

1- تثبيت حزمة تطوير البرامج (SDK)

ثبِّت حزمة تطوير البرامج (SDK) في مستودع Maven المحلي.

  1. استنسِخ مستودع SDK من GitHub.

    $ git clone https://github.com/google-cloudsearch/connector-sdk.git
    $ cd connector-sdk/csv
  2. تحقَّق من الإصدار المطلوب من حزمة SDK:

    $ 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

‫2. تحديد إعدادات موصل CSV

بصفتك مشرف الموصِّل، يمكنك التحكم في سلوك موصل CSV والسمات التي تحدِّد المَعلمات في ملف إعداد الموصِّل. تشمل المَعلمات القابلة للضبط ما يلي:

  • الوصول إلى مصدر بيانات
  • موقع ملف CSV
  • تعريفات أعمدة CSV
  • الأعمدة التي تحدِّد معرِّفًا فريدًا
  • خيارات الاجتياز
  • خيارات ACL لتقييد الوصول إلى البيانات

للوصول إلى ملف CSV بشكل صحيح وفهرسة المحتوى ذي الصلة، يجب إنشاء ملف الإعداد الخاص بالموصل أولاً.

لإنشاء ملف تهيئة:

  1. افتح محرِّر نصوص من اختيارك وأدخِل اسمًا لملف الإعداد.
    أضِف أزواج المفتاح key=value إلى محتوى الملف كما هو موضَّح في الأقسام التالية.
  2. احفظ ملف الإعداد وأدخِل اسمًا له.
    تنصح Google بتسمية ملف الإعداد connector-config.properties حتى لا تكون هناك حاجة إلى معلَمات سطر أوامر إضافية لتشغيل الموصل.

نظرًا لأنه يمكنك تحديد مسار ملف التهيئة في سطر الأوامر، فليس من الضروري تحديد موقع قياسي للملف. ومع ذلك، احتفظ بملف التهيئة في نفس الدليل مثل الموصل لتبسيط تتبع الموصل وتشغيله.

ولضمان تعرُّف الموصل على ملف الإعداد، حدِّد مساره في سطر الأوامر. بخلاف ذلك، يستخدم الموصِّل connector-config.properties في الدليل المحلي كاسم الملف التلقائي. للحصول على معلومات عن تحديد مسار الإعدادات في سطر الأوامر، يُرجى الاطّلاع على تشغيل موصل ملف CSV في Cloud Search.

3- ضبط إمكانية الوصول إلى مصدر بيانات Google Cloud Search

المعلمات الأولى التي يجب أن يحدّدها كل ملف إعداد هي المعلَمات اللازمة للوصول إلى مصدر بيانات Cloud Search، كما هو موضح في الجدول التالي. ستحتاج عادةً إلى رقم تعريف مصدر البيانات ورقم تعريف حساب الخدمة والمسار المؤدي إلى ملف المفتاح الخاص لحساب الخدمة من أجل ضبط وصول الموصل إلى Cloud Search. توضِّح الخطوات المطلوبة لإعداد مصدر بيانات في مقالة إدارة مصادر البيانات التابعة لجهات خارجية.

الإعدادات المَعلمة
رقم تعريف مصدر البيانات api.sourceId=1234567890abcdef

مطلوبة. معرّف مصدر Google Cloud Search الذي أعدّه مشرف Google Workspace، كما هو موضَّح في مقالة إدارة مصادر البيانات التابعة لجهات خارجية.

المسار إلى ملف المفتاح الخاص لحساب الخدمة api.serviceAccountPrivateKeyFile=./PrivateKey.json

مطلوبة. ملف مفتاح حساب خدمة Google Cloud Search الخاص بإمكانية الوصول إلى موصل ملف CSV في Google Cloud Search.

رقم تعريف مصدر الهوية api.identitySourceId=x0987654321

مطلوب في حال استخدام مجموعات ومستخدمين خارجيين. رقم تعريف مصدر هوية Google Cloud Search الذي أعدّه مشرف Google Workspace.

‫4. ضبط مَعلمات ملف CSV

قبل أن يتمكن الموصل من اجتياز ملف CSV واستخراج البيانات منه للفهرسة، يجب عليك تحديد المسار إلى الملف. يمكنك أيضًا تحديد تنسيق الملف ونوع ترميز الملف. أضِف المَعلمات التالية لتحديد خصائص ملف CSV في ملف الإعداد.

الإعدادات المَعلمة
المسار إلى ملف CSV csv.filePath=./movie_content.csv

مطلوبة. المسار إلى ملف CSV المراد الوصول إليه واستخراج المحتوى لفهرسته.

تنسيق الملف csv.format=DEFAULT

تنسيق الملف يمكن الحصول على القيم من فئة 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 للملف تتوفر الطرق المحتملة من فئة CSVFormat الخاصة بـ Apache Commons، وتشمل الطرق التي تأخذ حرفًا واحدًا أو سلسلة أو قيمة منطقية.

على سبيل المثال، لتحديد فاصلة منقوطة كمُحدِّد، استخدِم csv.format.withDelimiter=;. لتجاهل الأسطر الفارغة، استخدِم csv.format.withIgnoreEmptyLines=true.

نوع ترميز الملف csv.fileEncoding=UTF-8

يتم استخدام حرف Java عند قراءة Cloud Search للملف. وفي حال عدم تحديد ذلك، تستخدم خدمة Cloud Search مجموعة الأحرف التلقائية للنظام الأساسي.

5- تحديد أسماء الأعمدة لفهرستها والأعمدة الرئيسية الفريدة

وليتمكّن الموصل من الوصول إلى ملفات CSV وفهرستها، يجب تقديم معلومات حول تعريفات الأعمدة في ملف الإعداد. إذا كان ملف التهيئة لا يحتوي على المعلمات التي تحدد أسماء الأعمدة لفهرستها وأعمدة المفاتيح الفريدة، يتم استخدام القيم الافتراضية.

الإعدادات المَعلمة
الأعمدة المراد فهرستها csv.csvColumns=movieId,movieTitle,description,actors,releaseDate,year,userratings...

أسماء الأعمدة المطلوب فهرستها من ملف CSV. إذا لم يتم ضبط السياسة csv.csvColumns، سيتم استخدام الصف الأول من ملف CSV باعتباره العنوان. إذا تم ضبط csv.csvColumns، ستكون له الأولوية على الصف الأول من ملف CSV. إذا تم ضبط csv.csvColumns وكان الصف الأول من ملف CSV عبارة عن قائمة بأسماء الأعمدة، يجب ضبط csv.skipHeaderRecord=true لتجنُّب محاولة فهرسة الصف الأول كبيانات. القيم التلقائية هي الأعمدة في صف العنوان ضمن الملف.

الأعمدة الرئيسية الفريدة csv.uniqueKeyColumns=movieId

أعمدة CSV التي سيتم استخدام قيمها لإنشاء رقم تعريف فريد لكل سجل. وفي حال عدم تحديد قيمة، يجب استخدام تجزئة سجلّ CSV كمفتاح فريد. القيمة التلقائية هي رمز تجزئة السجلّ.

6. تحديد الأعمدة المراد استخدامها في عناوين URL لنتائج البحث القابلة للنقر

عندما يُجري أحد المستخدمين بحثًا باستخدام Google Cloud Search، يستجيب من خلال عرض صفحة نتائج تتضمن عناوين URL قابلة للنقر لكل نتيجة. لتفعيل هذه الميزة، يجب إضافة المَعلمة الموضّحة في الجدول التالي إلى ملف الإعداد.

الإعدادات المَعلمة
تنسيق عنوان URL لنتيجة البحث url.format=https://mymoviesite.com/movies/{0}

مطلوبة. التنسيق المطلوب لإنشاء عنوان URL للعرض لمحتوى ملف CSV.

مَعلمات عناوين URL لنتائج البحث url.columns=movieId

مطلوبة. أسماء أعمدة CSV التي سيتم استخدام قيمها لإنشاء عنوان URL لعرض السجل.

مَعلمات عناوين URL لنتائج البحث المطلوب تخطيها url.columnsToEscape=movieId

اختياريّ. أسماء أعمدة CSV التي سيتم تخطي عنوان URL فيها لإنشاء عنوان URL صالح للعرض.

7. تحديد معلومات البيانات الوصفية وتنسيقات الأعمدة وجودة البحث

يمكنك إضافة مَعلمات إلى ملف الإعدادات التي تحدّد ما يلي:

مَعلمات إعداد البيانات الوصفية

تصف معلمات تهيئة البيانات الوصفية أعمدة CSV المستخدمة لتعبئة البيانات الوصفية للعناصر. إذا لم يحتوي ملف التهيئة على هذه المعلمات، يتم استخدام القيم الافتراضية. يوضّح الجدول التالي هذه المعلمات.

الإعداد المعلَمة
العنوان itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind

تشير هذه السمة إلى سمة البيانات الوصفية التي تحتوي على القيمة المطابقة لعنوان المستند. القيمة التلقائية هي سلسلة فارغة.

عنوان URL 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.skipHeaderRecord=true

منطقي. تجاهل سجل العنوان (السطر الأول) في ملف CSV. إذا ضبطت السمة csv.csvColumns وكان ملف CSV يتضمّن صف عناوين، عليك ضبط القيمة skipHeaderRecord=true. وسيؤدي هذا إلى منع فهرسة الصف الأول في الملف على أنّه بيانات. إذا كان ملف CSV لا يحتوي على صف عنوان، اضبط skipHeaderRecord=false. القيمة التلقائية هي false.

الأعمدة متعددة القيم csv.multiValueColumns=genre,actors

أسماء الأعمدة في ملف CSV التي تحتوي على قيم متعددة. القيمة التلقائية هي سلسلة فارغة.

محدِّد للأعمدة المتعدّدة القيم csv.multiValue.genre=;

محدِّد الأعمدة المتعدّدة القيم. المحدِّد الافتراضي هو الفاصلة.

جودة البحث

يسمح موصِّل CSV في Cloud Search بتنسيق HTML التلقائي لحقول البيانات. يُحدِّد الموصِّل حقول البيانات في بداية تنفيذ الموصل، ثم يستخدم نموذج محتوى لتنسيق كل سجلّ بيانات قبل تحميله على Cloud Search.

يحدد نموذج المحتوى أهمية كل قيمة حقل للبحث. حقل العنوان مطلوب وتم تحديده على أنه أعلى أولوية. يمكنك تحديد مستويات أهمية جودة البحث لجميع حقول المحتوى الأخرى: عالية أو متوسطة أو منخفضة. أي حقل محتوى لم يتم تحديده في فئة معينة يتم ضبطه تلقائيًا على أولوية منخفضة. يوضّح الجدول التالي هذه المعلمات.

الإعدادات المَعلمة
عنوان المحتوى contentTemplate.csv.title=movieTitle

يمثّل عنوان المحتوى أعلى حقل جودة للبحث.

جودة بحث عالية لحقول المحتوى contentTemplate.csv.quality.high=actors

حقول المحتوى التي تم تحديد قيمة عالية لجودة البحث فيها القيمة التلقائية هي سلسلة فارغة.

جودة بحث منخفضة عن حقول المحتوى contentTemplate.csv.quality.low=genre

حقول المحتوى التي تم تحديد قيمة جودة بحث منخفضة لها. القيمة التلقائية هي سلسلة فارغة.

جودة بحث متوسطة عن حقول المحتوى contentTemplate.csv.quality.medium=description

حقول المحتوى التي يتم تحديد قيمة لها لجودة بحث متوسطة القيمة التلقائية هي سلسلة فارغة.

حقول محتوى غير محدّدة contentTemplate.csv.unmappedColumnsMode=IGNORE

كيفية تعامل الموصِّل مع حقول المحتوى غير المحددة. القيم الصالحة هي:

  • APPEND: لإلحاق حقول محتوى غير محدّدة بالنموذج
  • IGNORE: تجاهل حقول المحتوى غير المحدّدة

    القيمة التلقائية هي APPEND.

8. جدولة اجتياز البيانات

الاجتياز هو عملية الموصل لاكتشاف المحتوى من مصدر البيانات، وهو في هذه الحالة ملف CSV. أثناء تشغيل موصل CSV، اجتياز صفوف ملف CSV وفهرسة كل صف إلى Cloud Search عبر واجهة Indexing API.

يعمل الاجتياز الكامل على فهرسة جميع الأعمدة في الملف. لا يفهرس الاجتياز المتزايد سوى الأعمدة التي تمت إضافتها أو تعديلها منذ الاجتياز السابق. يُجري موصِّل ملف CSV عمليات اجتياز كاملة فقط. ولا يتم إجراء عمليات اجتياز متزايدة.

تحدد معلمات الجدولة عدد مرات انتظار الموصل بين الاجتيازات. إذا كان ملف التهيئة لا يحتوي على معلمات جدولة، فسيتم استخدام القيم الافتراضية. يوضّح الجدول التالي هذه المعلمات.

الإعدادات المَعلمة
الاجتياز الكامل بعد فاصل زمني schedule.traversalIntervalSecs=7200

يُجري الموصل عملية اجتياز كاملة بعد فاصل زمني محدد. تحديد الفاصل الزمني بين عمليات الاجتياز بالثواني القيمة التلقائية هي 86400 (عدد الثواني في يوم واحد).

الاجتياز الكامل عند بدء تشغيل الموصل schedule.performTraversalOnStart=false

يُجري الموصل عملية اجتياز كاملة عند بدء تشغيل الموصل، بدلاً من الانتظار حتى انتهاء صلاحية الفاصل الزمني الأول. القيمة التلقائية هي true.

9. تحديد خيارات قائمة التحكم بالوصول (ACL)

يدعم موصل CSV في Google Cloud Search الأذونات من خلال قوائم التحكم بالوصول للتحكم في الوصول إلى محتوى ملف CSV في نتائج البحث. هناك خيارات متعددة لقائمة التحكم بالوصول تتيح لك حماية وصول المستخدم إلى السجلات المفهرسة.

إذا كان المستودع يحتوي على معلومات قائمة التحكم بالوصول (ACL) الفردية المرتبطة بكل مستند، يمكنك تحميل جميع معلومات قائمة التحكم بالوصول (ACL) للتحكم في الوصول إلى المستندات داخل Cloud Search. إذا كان المستودع يوفر معلومات جزئية أو غير متوفرة لقائمة التحكم في الوصول، فيمكنك تقديم معلومات افتراضية لقائمة التحكم بالوصول في المعلمات التالية، والتي توفرها حزمة SDK للموصل.

يعتمد الموصل على تمكين قوائم التحكم بالوصول الافتراضية في ملف التهيئة. لتفعيل قوائم ACL التلقائية، عليك ضبط defaultAcl.mode على أي وضع غير none وضبطه باستخدام defaultAcl.*.

الإعدادات المَعلمة
وضع ACL defaultAcl.mode=fallback

مطلوبة. يعتمد موصل CSV على وظيفة قائمة التحكم بالوصول (ACL) الافتراضية. يتوافق الموصِّل فقط مع الوضع الاحتياطي.

اسم ACL التلقائي defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1

اختياريّ. تسمح بتجاوز اسم الحاوية الافتراضية التي يستخدمها الموصل لإعداد قوائم التحكم بالوصول الافتراضية. القيمة التلقائية هي "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) الشائعة لتحديد قائمة واحدة للتحكم في الوصول لكل سجل من سجلات مستودع البيانات، عيِّن جميع قيم المعلمات التالية:
  • 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 فردية محدَّدة.

تعريف المخطط

تتيح خدمة Cloud Search فهرسة المحتوى المنظَّم وغير المنظَّم وعرضه. لإتاحة طلبات البحث عن البيانات المنظَّمة في بياناتك، عليك إعداد Schema لمصدر البيانات.

بعد تحديده، يمكن لموصل CSV إحالة مخطط محدّد لإنشاء طلبات الفهرسة. لتقديم مثال توضيحي، لنفكر في ملف CSV يحتوي على معلومات حول الأفلام.

لنفترض أن ملف CSV الذي تم إدخاله يحتوي على المحتوى التالي.

  1. movieId
  2. movieTitle
  3. الوصف
  4. سنة
  5. releaseDate
  6. الجهات الفاعلة (قيم متعددة مفصولة بفواصل (,))
  7. النوع (قيم متعددة)
  8. التقييمات

بناءً على بنية البيانات أعلاه، يمكنك تحديد مخطط لمصدر بيانات تريد ضمنه فهرسة البيانات من ملف 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

للحصول على أوصاف تفصيلية لكل مَعلمة، يُرجى الاطّلاع على مرجع مَعلمات الإعدادات.

تشغيل موصِّل ملف CSV في Cloud Search

لتشغيل الموصل من سطر الأوامر، اكتب الأمر التالي:

$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config

تتوفّر سجلات الموصل تلقائيًا في الإخراج العادي. يمكنك تسجيل الدخول إلى الملفات من خلال تحديد logging.properties.