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

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. ऐक्सेस कंट्रोल लिस्ट (एसीएल) के विकल्प तय करना

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

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 Workspace एडमिन ने Google Cloud Search का जो सोर्स आईडी सेट अप किया है, जैसा कि तीसरे पक्ष के डेटा सोर्स मैनेज करना में बताया गया है.

सेवा खाते की निजी कुंजी फ़ाइल का पाथ api.serviceAccountPrivateKeyFile=./PrivateKey.json

ज़रूरी है. Google Cloud Search CSV कनेक्टर को ऐक्सेस करने के लिए, Google Cloud Search सेवा खाते की कुंजी फ़ाइल.

पहचान सोर्स आईडी api.identitySourceId=x0987654321

संगठन से बाहर के उपयोगकर्ताओं और ग्रुप का इस्तेमाल करने के लिए ज़रूरी है. Google Workspace एडमिन ने Google Cloud Search का जो आइडेंटिटी सोर्स आईडी सेट अप किया है.

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

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

URL 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 पैटर्न की अतिरिक्त सूची, जिसमें पैरामीटर को सेमीकोलन से अलग किया गया है. मेटाडेटा या स्कीमा में, तारीख या तारीख-समय वाले किसी भी फ़ील्ड के लिए स्ट्रिंग वैल्यू को पार्स करते समय, पैटर्न का इस्तेमाल किया जाता है. डिफ़ॉल्ट वैल्यू, खाली सूची होती है. हालांकि, RFC 3339 और RFC 1123 फ़ॉर्मैट हमेशा काम करते हैं.

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

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

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

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

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

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

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

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

खोज की क्वालिटी

Cloud Search CSV कनेक्टर की मदद से, डेटा फ़ील्ड के लिए अपने-आप 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 फ़ाइल की पंक्तियों को ट्रैवर्स करेगा और Indexing API की मदद से, हर पंक्ति को Cloud Search में इंडेक्स करेगा.

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

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

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

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

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

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

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

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

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

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

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

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

एसीएल (ACL) का डिफ़ॉल्ट नाम defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1

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

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

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

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

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

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