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 Connector, CSV फ़ाइल से अलग-अलग पंक्तियों को निकालता है और Cloud Search के इंडेक्स करने वाले एपीआई की मदद से, उन्हें Cloud Search में इंडेक्स करता है. इंडेक्स हो जाने के बाद, CSV फ़ाइलों की अलग-अलग पंक्तियों को Cloud Search के क्लाइंट या Cloud Search के Query API से खोजा जा सकता है. CSV कनेक्टर की सुविधा से यह भी कंट्रोल किया जा सकता है कि उपयोगकर्ता, ACL का इस्तेमाल करके खोज के नतीजों में मौजूद कॉन्टेंट को ऐक्सेस कर सकते हैं या नहीं.

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

  • Java JRE 1.8 ऐसे कंप्यूटर पर इंस्टॉल किया गया है जिस पर Google Cloud Search CSV कनेक्टर काम करता है
  • 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. ऐक्सेस कंट्रोल लिस्ट (एसीएल) के विकल्प तय करना

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 कॉलम की परिभाषाएं
  • यूनीक आईडी तय करने वाले कॉलम
  • ट्रैवर्सल विकल्प
  • डेटा ऐक्सेस पर पाबंदी लगाने के लिए एसीएल विकल्प

कनेक्टर के लिए पहले उसकी कॉन्फ़िगरेशन फ़ाइल बनानी होगी, ताकि वह 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 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

फ़ाइल का फ़ॉर्मैट. संभावित वैल्यू Apache कॉमंस 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 कॉमंस CSV CSVFormat क्लास से दिए जाते हैं और उनमें वे तरीके शामिल हैं जो किसी एक वर्ण, स्ट्रिंग या बूलियन वैल्यू को लेते हैं.

जैसे, सेमीकोलन को डीलिमिटर के तौर पर बताने के लिए, 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. क्लिक किए जा सकने वाले खोज नतीजों के यूआरएल में इस्तेमाल करने के लिए, कॉलम चुनें

जब कोई उपयोगकर्ता 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. डेटा ट्रेवर्सल शेड्यूल करें

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

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

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

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

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

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

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

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

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

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

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

सेटिंग पैरामीटर
एसीएल मोड defaultAcl.mode=fallback

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

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

ज़रूरी नहीं. डिफ़ॉल्ट ACL सेटअप करने के लिए, कनेक्टर को इस्तेमाल किए जाने वाले वर्चुअल कंटेनर का नाम बदलने की अनुमति मिलती है. डिफ़ॉल्ट वैल्यू "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
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 के बिना रिकॉर्ड नहीं खोजे जा सकते.

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

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 तय करके, फ़ाइलों में लॉग इन किया जा सकता है.