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

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 टूल को अपनी लोकल Maven रिपॉज़िटरी में इंस्टॉल करें.

  1. GitHub से SDK रिपॉज़िटरी का क्लोन बनाएं.

    $ 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. कनेक्टर की 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 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

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

खोज के नतीजों के यूआरएल पैरामीटर, जिन्हें एस्केप करना है 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 को सेट करें. डिफ़ॉल्ट वैल्यू 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 unspecified content fields to the template
  • IGNORE—बिना वैल्यू वाले कॉन्टेंट फ़ील्ड को अनदेखा करें

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

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

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

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

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

सेटिंग पैरामीटर
कुछ समय बाद पूरी तरह से क्रॉल करना schedule.traversalIntervalSecs=7200

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

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

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

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

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

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

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

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

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

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

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

डिफ़ॉल्ट पब्लिक एसीएल defaultAcl.public=true

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

कॉमन एसीएल ग्रुप के रीडर defaultAcl.readers.groups=google:group1, group2
एसीएल (ACL) पढ़ने वाले सामान्य लोग defaultAcl.readers.users=user1, user2, google:user3
रीडिंग ग्रुप के सदस्यों को ACL की अनुमति नहीं है 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 तय करके, फ़ाइलों में लॉग किया जा सकता है.