CSV कनेक्टर डिप्लॉय करना

यह गाइड Google Cloud Search CSV (कॉमा लगाकर अलग की गई वैल्यू) कनेक्टर के एडमिन के लिए है. इसका मतलब है कि कनेक्टर को डाउनलोड करने, उसे कॉन्फ़िगर करने, उसे चलाने, और उसे मॉनिटर करने के लिए, हर कोई ज़िम्मेदार होगा.

इस गाइड में CSV कनेक्टर के डिप्लॉयमेंट से जुड़े मुख्य कामों को करने के निर्देश दिए गए हैं:

  • Google Cloud Search CSV कनेक्टर सॉफ़्टवेयर डाउनलोड करें
  • कनेक्टर को किसी खास CSV डेटा सोर्स के साथ इस्तेमाल करने के लिए कॉन्फ़िगर करें
  • कनेक्टर को डिप्लॉय करें और चलाएं

इस दस्तावेज़ के कॉन्सेप्ट को समझने के लिए, आपको Google Workspace, CSV फ़ाइलों, और ऐक्सेस कंट्रोल लिस्ट (एसीएल) की बुनियादी बातों के बारे में पता होना चाहिए.

Google Cloud Search CSV कनेक्टर की खास जानकारी

Cloud Search CSV कनेक्टर, कॉमा लगाकर अलग की गई वैल्यू (CSV) वाली टेक्स्ट फ़ाइल के साथ काम करता है. CSV फ़ाइल में टेबल का डेटा सेव होता है और फ़ाइल की हर लाइन एक डेटा रिकॉर्ड होती है.

Google Cloud Search का CSV कनेक्टर, CSV फ़ाइल से अलग-अलग लाइनें निकालता है और Cloud Search के इंडेक्स करने वाले एपीआई के ज़रिए उन्हें Cloud Search में इंडेक्स करता है. इंडेक्स हो जाने के बाद, CSV फ़ाइलों की अलग-अलग पंक्तियों को Cloud Search के क्लाइंट या Cloud Search के क्वेरी एपीआई की मदद से खोजा जा सकता है. CSV कनेक्टर की मदद से, खोज के नतीजों में मौजूद कॉन्टेंट के ऐक्सेस को कंट्रोल किया जा सकता है. इसके लिए, ACL का इस्तेमाल किया जा सकता है.

Google Cloud Search CSV कनेक्टर को Linux या Windows पर इंस्टॉल किया जा सकता है. Google Cloud Search CSV कनेक्टर को डिप्लॉय करने से पहले, पक्का करें कि आपके पास नीचे दिए गए ज़रूरी कॉम्पोनेंट हों:

  • जिस कंप्यूटर पर Google Cloud Search CSV कनेक्टर चलता है उस पर Java JRE 1.8 इंस्टॉल किया गया
  • Google Cloud Search और डेटा सोर्स के बीच संबंध बनाने के लिए, Google Workspace में मौजूद जानकारी ज़रूरी है:

    आम तौर पर, डोमेन का Google Workspace एडमिन आपके लिए ये क्रेडेंशियल दे सकता है.

डिप्लॉयमेंट के चरण

Google Cloud Search CSV कनेक्टर को डिप्लॉय करने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Search का CSV कनेक्टर सॉफ़्टवेयर इंस्टॉल करना
  2. CSV कनेक्टर कॉन्फ़िगरेशन की जानकारी देना
  3. Google Cloud Search के डेटा सोर्स का ऐक्सेस कॉन्फ़िगर करना
  4. CSV फ़ाइल का ऐक्सेस कॉन्फ़िगर करना
  5. इंडेक्स करने के लिए कॉलम के नाम, खास कॉलम के यूनीक कॉलम, और तारीख और समय के कॉलम तय करना
  6. क्लिक किए जा सकने वाले खोज नतीजों के यूआरएल में इस्तेमाल करने के लिए कॉलम तय करना
  7. मेटाडेटा की जानकारी और कॉलम का फ़ॉर्मैट बताएं
  8. डेटा ट्रैवर्सल शेड्यूल करना
  9. ऐक्सेस कंट्रोल लिस्ट (ACL) के विकल्प बताएं

1. SDK टूल इंस्टॉल करें

अपनी लोकल Maven रिपॉज़िटरी में SDK टूल इंस्टॉल करें.

  1. GitHub से SDK टूल के रिपॉज़िटरी (डेटा स्टोर करने की जगह) का क्लोन बनाएं.

    $ 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. कनेक्टर की ZIP फ़ाइल को, अपने लोकल इंस्टॉलेशन डायरेक्ट्री में कॉपी करें:

    $ 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 को डिफ़ॉल्ट फ़ाइल नाम के तौर पर इस्तेमाल करता है. कमांड-लाइन पर कॉन्फ़िगरेशन पाथ तय करने के बारे में जानकारी पाने के लिए, Cloud Search CSV कनेक्टर चलाएं लेख पढ़ें.

3. Google Cloud Search के डेटा सोर्स का ऐक्सेस कॉन्फ़िगर करें

हर कॉन्फ़िगरेशन फ़ाइल में मौजूद सबसे पहले पैरामीटर ऐसे हैं जो Cloud Search डेटा सोर्स को ऐक्सेस करने के लिए ज़रूरी हैं, जैसा कि इस टेबल में दिखाया गया है. आम तौर पर, Cloud Search के लिए कनेक्टर का ऐक्सेस कॉन्फ़िगर करने के लिए आपको डेटा सोर्स आईडी, सेवा खाता आईडी, और सेवा खाते की निजी कुंजी फ़ाइल के पाथ की ज़रूरत होगी. डेटा सोर्स सेट अप करने का तरीका तीसरे पक्ष के डेटा सोर्स मैनेज करें में बताया गया है

सेटिंग पैरामीटर
डेटा सोर्स का आईडी api.sourceId=1234567890abcdef

ज़रूरी है. Google Workspace एडमिन ने Google Cloud Search का सोर्स आईडी सेट अप किया है. इसके बारे में, तीसरे पक्ष के डेटा सोर्स मैनेज करना सेक्शन में बताया गया है.

सेवा खाते की निजी कुंजी वाली फ़ाइल का पाथ 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

फ़ाइल का फ़ॉर्मैट. यह वैल्यू Apache Commons CSV CSVFormat क्लास से ली जा सकती है.

फ़ॉर्मैट की वैल्यू में ये शामिल हैं: DEFAULT, EXCEL, INFORMIX_UNLOAD, INFORMIX_UNLOAD_CSV, MYSQL, RFC4180, ORACLE, POSTGRESQL_CSV, POSTGRESQL_TEXT, और TDF. अगर जानकारी नहीं दी गई है, तो Cloud Search, DEFAULT का इस्तेमाल करता है.

फ़ाइल फ़ॉर्मैट मॉडिफ़ायर csv.format.withMethod=value

Cloud Search, फ़ाइल को मैनेज करने के तरीके में बदलाव कर रहा है. संभावित तरीके, Apache Commons CSV CSVFormat क्लास से हैं. इनमें कोई एक वर्ण, स्ट्रिंग या बूलियन वैल्यू इस्तेमाल करने वाले तरीके शामिल हैं.

उदाहरण के लिए, सेमीकोलन को डीलिमिटर के तौर पर सेट करने के लिए, csv.format.withDelimiter=; का इस्तेमाल करें. खाली लाइनों को अनदेखा करने के लिए, csv.format.withIgnoreEmptyLines=true का इस्तेमाल करें.

फ़ाइल एन्कोडिंग टाइप csv.fileEncoding=UTF-8

जब Cloud Search फ़ाइल को पढ़ता है, तब इस्तेमाल करने के लिए Java वर्ण सेट. अगर इसकी जानकारी नहीं दी गई है, तो 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. क्लिक किए जा सकने वाले खोज नतीजों के यूआरएल में इस्तेमाल करने के लिए कॉलम तय करें

जब कोई उपयोगकर्ता Google Cloud Search का इस्तेमाल करके खोज करता है, तो वह जवाब के तौर पर एक नतीजे वाला पेज दिखाता है. इस पेज में हर एक नतीजे के क्लिक किए जा सकने वाले यूआरएल शामिल होते हैं. इस सुविधा को चालू करने के लिए, आपको नीचे दी गई टेबल में दिखाए गए पैरामीटर को कॉन्फ़िगरेशन फ़ाइल में जोड़ना होगा.

सेटिंग पैरामीटर
खोज के नतीजे में यूआरएल का फ़ॉर्मैट url.format=https://mymoviesite.com/movies/{0}

ज़रूरी है. CSV कॉन्टेंट के लिए व्यू यूआरएल बनाने का फ़ॉर्मैट.

खोज के नतीजों में शामिल यूआरएल पैरामीटर. url.columns=movieId

ज़रूरी है. वे CSV कॉलम के नाम जिनकी वैल्यू का इस्तेमाल, रिकॉर्ड के व्यू यूआरएल को जनरेट करने के लिए किया जाएगा.

एस्केप करने के लिए खोज नतीजों के यूआरएल पैरामीटर url.columnsToEscape=movieId

ज़रूरी नहीं. वे CSV कॉलम के नाम जिनके मान को यूआरएल एस्केप किया जाएगा, ताकि मान्य व्यू यूआरएल जनरेट किया जा सके.

7. मेटाडेटा की जानकारी, कॉलम के फ़ॉर्मैट, खोज की क्वालिटी के बारे में बताएं

कॉन्फ़िगरेशन फ़ाइल में ये पैरामीटर जोड़े जा सकते हैं:

मेटाडेटा कॉन्फ़िगरेशन पैरामीटर

मेटाडेटा कॉन्फ़िगरेशन पैरामीटर, आइटम के मेटाडेटा को अपने-आप भरने के लिए इस्तेमाल किए जाने वाले CSV कॉलम के बारे में बताते हैं. अगर कॉन्फ़िगरेशन फ़ाइल में ये पैरामीटर शामिल नहीं हैं, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. नीचे दी गई टेबल में ये पैरामीटर दिखाए गए हैं.

सेटिंग पैरामीटर
टाइटल itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind

मेटाडेटा एट्रिब्यूट जिसमें दस्तावेज़ के टाइटल से मिलती-जुलती वैल्यू शामिल होती है. डिफ़ॉल्ट वैल्यू एक खाली स्ट्रिंग होती है.

यूआरएल itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
मेटाडेटा एट्रिब्यूट, जिसमें खोज के नतीजों में दिखाने के लिए दस्तावेज़ के यूआरएल की वैल्यू शामिल होती है.
बनाए जाने का टाइमस्टैंप 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 पैटर्न की सेमीकोलन से अलग की गई सूची. इन पैटर्न का इस्तेमाल, मेटाडेटा या स्कीमा में मौजूद तारीख या समय के हिसाब से बने फ़ील्ड की स्ट्रिंग की वैल्यू पार्स करते समय किया जाता है. डिफ़ॉल्ट वैल्यू एक खाली सूची होती है, लेकिन आरएफ़सी 3339 और आरएफ़सी 1123 फ़ॉर्मैट हमेशा काम करते हैं.

कॉलम के फ़ॉर्मैट

कॉलम के फ़ॉर्मैट से उन कॉलम के बारे में जानकारी मिलती है जो खोजे जा सकने वाले कॉन्टेंट का हिस्सा होना चाहिए. अगर कॉन्फ़िगरेशन फ़ाइल में ये पैरामीटर नहीं हैं, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. नीचे दी गई टेबल में ये पैरामीटर दिखाए गए हैं.

सेटिंग पैरामीटर
हेडर छोड़ें csv.skipHeaderRecord=true

बूलियन. CSV फ़ाइल में हेडर रिकॉर्ड (पहली लाइन) को अनदेखा करें. अगर आपने csv.csvColumns को सेट किया है और CSV फ़ाइल में हेडर वाली लाइन है, तो आपको skipHeaderRecord=true को सेट करना होगा. इससे फ़ाइल की पहली लाइन को डेटा के तौर पर इंडेक्स नहीं किया जा सकता. अगर CSV फ़ाइल में हेडर वाली लाइन नहीं है, तो skipHeaderRecord=false सेट करें. डिफ़ॉल्ट वैल्यू 'गलत' है.

एक से ज़्यादा वैल्यू वाले कॉलम csv.multiValueColumns=genre,actors

CSV फ़ाइल में मौजूद ऐसे कॉलम के नाम जिनमें एक से ज़्यादा वैल्यू हैं. डिफ़ॉल्ट वैल्यू एक खाली स्ट्रिंग होती है.

एक से ज़्यादा वैल्यू वाले कॉलम का डीलिमिटर csv.multiValue.genre=;

एक से ज़्यादा वैल्यू वाले कॉलम के लिए डीलिमिटर. डिफ़ॉल्ट डेलिमिटर, कॉमा होता है.

खोज गुणवत्ता

Cloud Search CSV कनेक्टर, डेटा फ़ील्ड के लिए अपने-आप एचटीएमएल फ़ॉर्मैटिंग की अनुमति देता है. आपका कनेक्टर, कनेक्टर पर एक्ज़ीक्यूशन की शुरुआत में डेटा फ़ील्ड तय करता है. इसके बाद, 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—टेंप्लेट में कॉन्टेंट के ऐसे फ़ील्ड जोड़ें जिनके बारे में जानकारी नहीं दी गई है
  • गैर-ज़रूरी—कॉन्टेंट के ऐसे फ़ील्ड को अनदेखा करें जिनके बारे में जानकारी नहीं दी गई है

    डिफ़ॉल्ट वैल्यू APPEND. है.

8. डेटा ट्रैवर्सल शेड्यूल करें

ट्रैवर्सल, डेटा सोर्स से कॉन्टेंट खोजने की कनेक्टर की प्रक्रिया है. इस मामले में, एक CSV फ़ाइल है. CSV कनेक्टर के चलने पर, यह CSV फ़ाइल की पंक्तियों को पार करेगा और इंडेक्स करने वाले एपीआई की मदद से, हर पंक्ति को Cloud Search पर इंडेक्स करेगा.

फ़ुल ट्रेवर्सल, फ़ाइल में मौजूद सभी कॉलम को इंडेक्स करता है. इंक्रीमेंटल ट्रैवर्सल सिर्फ़ उन कॉलम को इंडेक्स करता है जिन्हें पिछले ट्रैवर्सल के बाद जोड़ा गया है या जिनमें बदलाव किए गए हैं. CSV कनेक्टर सिर्फ़ पूरे ट्रैवर्सल परफ़ॉर्म करता है. यह इंक्रीमेंटल ट्रैवर्सल परफ़ॉर्म नहीं करता है.

शेड्यूलिंग पैरामीटर यह तय करते हैं कि कनेक्टर, ट्रैवर्सल के बीच कितनी बार इंतज़ार करेगा. अगर कॉन्फ़िगरेशन फ़ाइल में शेड्यूलिंग पैरामीटर मौजूद नहीं हैं, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. नीचे दी गई टेबल में ये पैरामीटर दिखाए गए हैं.

सेटिंग पैरामीटर
एक इंटरवल के बाद पूरा ट्रैवर्सल schedule.traversalIntervalSecs=7200

कनेक्टर एक खास इंटरवल के बाद पूरा ट्रैवर्सल करता है. ट्रैवर्सल के बीच के अंतराल को सेकंड में तय करें. इसकी डिफ़ॉल्ट वैल्यू 86400 है (एक दिन में सेकंड की संख्या).

कनेक्टर स्टार्टअप पर पूरा ट्रैवर्सल schedule.performTraversalOnStart=false

कनेक्टर के शुरू होने पर, कनेक्टर पहले इंटरवल के खत्म होने का इंतज़ार करने के बजाय, पूरा ट्रेवर्सल करता है. डिफ़ॉल्ट वैल्यू true होती है.

9. ऐक्सेस कंट्रोल लिस्ट (एसीएल) के विकल्प तय करें

Google Cloud Search CSV कनेक्टर, खोज नतीजों में CSV फ़ाइल के कॉन्टेंट के ऐक्सेस को कंट्रोल करने के लिए, ACL के ज़रिए अनुमतियों के साथ काम करता है. ऐसे कई ACL विकल्प उपलब्ध हैं, जिनकी मदद से आप इंडेक्स किए गए रिकॉर्ड तक उपयोगकर्ता के ऐक्सेस की सुरक्षा कर सकते हैं.

अगर आपके रिपॉज़िटरी में हर दस्तावेज़ के साथ अलग-अलग ACL जानकारी जुड़ी है, तो Cloud Search में दस्तावेज़ का ऐक्सेस कंट्रोल करने के लिए, ACL की पूरी जानकारी अपलोड करें. अगर डेटा स्टोर करने की जगह पर ACL की पूरी जानकारी नहीं दी गई है या कुछ जानकारी नहीं दी गई है, तो नीचे दिए गए पैरामीटर में ACL की डिफ़ॉल्ट जानकारी दी जा सकती है. SDK टूल, कनेक्टर को यह जानकारी देता है.

कनेक्टर कॉन्फ़िगरेशन फ़ाइल में डिफ़ॉल्ट ACL सक्षम होने पर निर्भर करता है. डिफ़ॉल्ट ACL को चालू करने के लिए, defaultAcl.mode को none के अलावा किसी भी अन्य मोड पर सेट करें और उसे defaultAcl.* के साथ कॉन्फ़िगर करें

सेटिंग पैरामीटर
ACL मोड defaultAcl.mode=फ़ॉलबैक

ज़रूरी है. CSV कनेक्टर, डिफ़ॉल्ट ACL फ़ंक्शन पर निर्भर करता है. कनेक्टर में सिर्फ़ फ़ॉलबैक मोड इस्तेमाल किया जा सकता है.

डिफ़ॉल्ट ACL नाम defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1

ज़रूरी नहीं. डिफ़ॉल्ट एसीएल सेटअप करने के लिए, कनेक्टर जिन वर्चुअल कंटेनर का इस्तेमाल करता है उनके नाम को बदलने की अनुमति देता है. डिफ़ॉल्ट वैल्यू "DEFAULT_ACL_VIRTUAL_CONTAINER" है. अगर एक से ज़्यादा कनेक्टर एक ही डेटा सोर्स में कॉन्टेंट को इंडेक्स कर रहे हैं, तो हो सकता है कि आप इस वैल्यू को बदलना चाहें.

डिफ़ॉल्ट सार्वजनिक ACL defaultAcl.public=true

डेटा स्टोर करने की पूरी जगह के लिए इस्तेमाल किया जाने वाला डिफ़ॉल्ट ACL, सार्वजनिक डोमेन ऐक्सेस पर सेट होता है. डिफ़ॉल्ट वैल्यू false है.

सामान्य ACL ग्रुप रीडर defaultAcl.readers.groups=google:group1, group2
सामान्य ACL रीडर defaultAcl.readers.users=user1, user2, google:user3
सामान्य ACL ने ग्रुप रीडर को अस्वीकार कर दिया defaultAcl.denied.groups=group3
Common Acl ने पाठकों को अस्वीकार किया defaultAcl.denied.users=user4, user5
पूरे डोमेन का ऐक्सेस यह तय करने के लिए कि डोमेन का हर उपयोगकर्ता, इंडेक्स किए गए हर रिकॉर्ड को सार्वजनिक तौर पर ऐक्सेस कर सके, यहां दिए गए दोनों विकल्पों को वैल्यू के साथ सेट करें:
  • defaultAcl.mode=फ़ॉलबैक
  • defaultAcl.public=true
सामान्य परिभाषित ACL डेटा स्टोर करने की जगह के हर रिकॉर्ड के लिए एक ACL तय करने के लिए, इन सभी पैरामीटर वैल्यू को सेट करें:
  • defaultAcl.mode=फ़ॉलबैक
  • 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 कोई नहीं पर सेट है, तो अलग-अलग एसीएल के बिना रिकॉर्ड खोजे नहीं जा सकते.

स्कीमा की परिभाषा

Cloud Search, स्ट्रक्चर्ड और अनस्ट्रक्चर्ड कॉन्टेंट को इंडेक्स करने और दिखाने की अनुमति देता है. अपने डेटा पर स्ट्रक्चर्ड डेटा क्वेरी के लिए, आपको अपने डेटा सोर्स के लिए स्कीमा सेट अप करना होगा.

तय हो जाने के बाद, इंडेक्स करने के अनुरोध तैयार करने के लिए, 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

हर पैरामीटर के बारे में ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन पैरामीटर का रेफ़रंस देखें.

Cloud Search CSV कनेक्टर चलाएं

कमांड लाइन से कनेक्टर को चलाने के लिए, यह कमांड टाइप करें:

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

डिफ़ॉल्ट रूप से, कनेक्टर लॉग स्टैंडर्ड आउटपुट पर उपलब्ध होते हैं. logging.properties तय करके, फ़ाइलों में लॉग इन किया जा सकता है.