Cloud Search eğitim kılavuzunun bu sayfasında, verileri dizine eklemek için veri kaynağı ve içerik bağlayıcısının nasıl oluşturulacağı gösterilmektedir. Bu eğiticinin başından başlamak için Cloud Search'i kullanmaya başlama eğiticisine bakın.
Bağlayıcıyı oluşturma
Çalışma dizininizi cloud-search-samples/end-to-end/connector
dizinine değiştirin ve bu komutu çalıştırın:
mvn package -DskipTests
Komut, içerik bağlayıcıyı oluşturmak için gereken bağımlılıkları indirir ve kodu derler.
Hizmet hesabı kimlik bilgileri oluşturma
Bağlayıcı, Cloud Search API'lerini çağırmak için hizmet hesabı kimlik bilgilerini gerektirir. Kimlik bilgilerini oluşturmak için:
- Google Cloud Console'a dönün.
- Soldaki gezinme panelinde Kimlik bilgileri'ni tıklayın. "Credential" (Kimlik Bilgisi) sayfası görüntülenir.
- + KİMLİK BİLGİSİ OLUŞTUR açılır listesini tıklayın ve Hizmet hesabı'nı seçin. "Hizmet hesabı oluştur" sayfası görünür.
- Hizmet hesabı adı alanına "tutorial" yazın.
- Hizmet hesabı kimliği değerini (Hizmet hesabı adının hemen ardından) not edin. Bu değer daha sonra kullanılır.
- OLUŞTUR'u tıklayın. "Hizmet hesabı izinleri (isteğe bağlı)" iletişim kutusu görünür.
- DEVAM'ı tıklayın. "Kullanıcıların bu hizmet hesabına erişmesine izin ver (isteğe bağlı)" iletişim kutusu görünür.
- BİTTİ'yi tıklayın. "Kimlik bilgileri" ekranı görünür.
- Hizmet Hesapları bölümünde, hizmet hesabı e-posta adresini tıklayın. "Hizmet hesabı ayrıntıları" sayfası açılır.
- Anahtarlar bölümünde ANAHTAR EKLE açılır listesini tıklayın ve Yeni anahtar oluştur'u seçin. "Özel anahtar oluştur" iletişim kutusu görünür.
- OLUŞTUR'u tıklayın.
- (isteğe bağlı) "console.cloud.google.com adresinde indirme işlemlerine izin vermek istiyor musunuz?" iletişim kutusu görünürse İzin ver'i tıklayın.
- Bilgisayarınıza bir özel anahtar dosyası kaydedilir. İndirilen dosyanın konumunu not edin. Bu dosya, içerik bağlayıcıyı Google Cloud Search API'lerini çağırırken kimliğini doğrulayabilmesi için yapılandırmak amacıyla kullanılır.
Üçüncü taraf desteğini başlatma
Diğer Cloud Search API'lerini çağırabilmek için Google Cloud Search için üçüncü taraf desteğini başlatmanız gerekir.
Cloud Search için üçüncü taraf desteğini başlatmak için:
Cloud Search platform projenizde hizmet hesabı kimlik bilgileri bulunuyor. Ancak üçüncü taraf desteğini başlatmak için web uygulaması kimlik bilgileri oluşturmanız gerekir. Web uygulaması kimlik bilgilerini oluşturma talimatları için Kimlik bilgileri oluşturma başlıklı makaleyi inceleyin. Bu adımı tamamladıktan sonra bir istemci kimliğiniz ve istemci gizli anahtar dosyanız olmalıdır.
Erişim jetonu almak için Google'ın OAuth 2 Playground'unu kullanın:
- Ayarlar'ı tıklayın ve Kendi kimlik doğrulama kimlik bilgilerinizi kullanın'ı işaretleyin.
- 1. adımda kopyaladığınız istemci kimliğini ve istemci gizli anahtarını girin.
- Kapat'ı tıklayın.
- Kapsamlar alanına
https://www.googleapis.com/auth/cloud_search.settings
yazın ve Yetkilendir'i tıklayın. OAuth 2 Playground, bir yetkilendirme kodu döndürür. - Jetonlar için yetkilendirme kodu değiş tokuşu yap'ı tıklayın. Bir jeton döndürülür.
Cloud Search için üçüncü taraf desteğini başlatmak üzere aşağıdaki curl komutunu kullanın.
[YOUR_ACCESS_TOKEN]
değerini 2. adımda elde edilen jetonla değiştirdiğinizden emin olun.curl --request POST \ 'https://cloudsearch.googleapis.com/v1:initializeCustomer' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{}' \ --compressed
Başarılı olursa yanıt gövdesi,
operation
öğesinin bir örneğini içerir. Örneğin:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" }
Bu işlem başarısız olursa Cloud Search Destek Ekibi ile iletişime geçin.
Üçüncü taraf desteğinin başlatıldığını doğrulamak için operations.get işlevini kullanın:
curl \ 'https://cloudsearch.googleapis.com/v1/operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY?key= [YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressed
Üçüncü taraf başlatma işlemi tamamlandığında
done
alanınıtrue
olarak ayarlar. Örneğin:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" done: true }
Veri kaynağını oluşturma
Ardından, Yönetici Konsolu'nda bir veri kaynağı oluşturun. Veri kaynağı, bağlayıcıyı kullanarak içeriğin dizine eklenmesi için bir ad alanı sağlar.
- Google Yönetici konsolunu açın.
- Uygulamalar simgesini tıklayın. "Uygulama yönetimi" sayfası görünür.
- Google Workspace'i tıklayın. "Apps Google Workspace yönetimi" sayfası görünür.
- Aşağı kaydırın ve Cloud Search'ı tıklayın. "Google Workspace Ayarları" sayfası gösterilir.
- Üçüncü taraf veri kaynakları'nı tıklayın. "Veri Kaynakları" sayfası görünür.
- Yuvarlak sarı renkli + simgesini tıklayın. "Yeni veri kaynağı ekle" iletişim kutusu görünür.
- Görünen ad alanına "tutorial" yazın.
- Hizmet hesabı e-posta adresleri alanına, önceki bölümde oluşturduğunuz hizmet hesabının e-posta adresini girin. Hizmet hesabının e-posta adresini bilmiyorsanız değeri hizmet hesapları sayfasında arayın.
- EKLE'yi tıklayın. "Veri kaynağı başarıyla oluşturuldu" iletişim kutusu görüntülenir.
- *Tamam'ı tıklayın. Yeni oluşturulan veri kaynağının Kaynak Kimliği'ni not edin. Kaynak kimliği, içerik bağlayıcısını yapılandırmak için kullanılır.
GitHub API için kişisel erişim jetonu oluşturma
Bağlayıcının yeterli kotaya sahip olması için GitHub API'ye kimliği doğrulanmış erişim vermesi gerekir. Bağlantılayıcı, basitlik sağlamak için OAuth yerine kişisel erişim jetonlarından yararlanır. Kişisel jetonlar, OAuth'a benzer sınırlı izinlere sahip bir kullanıcı olarak kimlik doğrulamayı sağlar.
- GitHub'a giriş yapın.
- Sağ üst köşeden profil resminizi tıklayın. Açılır menü görüntülenir.
- Ayarlar'ı tıklayın.
- Geliştirici ayarları'nı tıklayın.
- Kişisel erişim jetonları'nı tıklayın.
- Kişisel erişim jetonu oluştur'u tıklayın.
- Not alanına "Cloud Search tutorial" yazın.
- public_repo kapsamını kontrol edin.
- Jeton oluştur'u tıklayın.
- Oluşturulan jetonu not edin. GitHub API'lerini çağırmak için bağlayıcı tarafından kullanılır ve dizine ekleme işlemini gerçekleştirmek için API kotası sağlar.
Bağlayıcıyı yapılandırma
Kimlik bilgilerini ve veri kaynağını oluşturduktan sonra, bağlayıcı yapılandırmasını aşağıdaki değerleri içerecek şekilde güncelleyin:
- Komut satırından dizini
cloud-search-samples/end-to-end/connector/
olarak değiştirin. sample-config.properties
dosyasını bir metin düzenleyicide açın.api.serviceAccountPrivateKeyFile
parametresini, daha önce indirdiğiniz hizmet kimlik bilgilerinin dosya yoluna ayarlayın.api.sourceId
parametresini daha önce oluşturduğunuz veri kaynağının kimliğine ayarlayın.github.user
parametresini GitHub kullanıcı adınıza ayarlayın.github.token
parametresini, daha önce oluşturduğunuz erişim jetonuna ayarlayın.- Dosyayı kaydedin.
Şemayı güncelleme
Bağlayıcı hem yapılandırılmış hem de yapılandırılmamış içeriği dizine ekler. Verileri dizine eklemeden önce veri kaynağının şemasını güncellemeniz gerekir. Şemayı güncellemek için aşağıdaki komutu çalıştırın:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.SchemaTool \
-Dexec.args="-Dconfig=sample-config.properties"
Bağlayıcıyı çalıştırma
Bağlayıcıyı çalıştırmak ve dizine eklemeye başlamak için şu komutu çalıştırın:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.GithubConnector \
-Dexec.args="-Dconfig=sample-config.properties"
Bağlayıcının varsayılan yapılandırması, googleworkspace
kuruluşundaki tek bir deposu dizine eklemektir. Deponun dizine eklenmesi yaklaşık 1 dakika sürer.
İlk dizine ekleme işleminden sonra bağlayıcı, depoda yapılan ve Cloud Search dizinine yansıtılması gereken değişiklikleri yoklamaya devam eder.
Kodu inceleme
Kalan bölümlerde, konnektörün nasıl oluşturulduğu incelenmektedir.
Uygulamayı başlatma
Bağlayıcının giriş noktası GithubConnector
sınıfıdır. main
yöntemi, SDK'nın IndexingApplication
sınıfını örneklendirir ve başlatır.
SDK tarafından sağlanan ListingConnector
, dizindeki öğelerin durumunu izlemek için Cloud Search sıralarından yararlanan bir tarama stratejisi uygular. GitHub'daki içeriğe erişmek için örnek bağlayıcı tarafından uygulanan GithubRepository
işlevine yetki verir.
GitHub depolarını gezme
Tam tarama sırasında, dizine eklenmeleri gerekebilecek öğeleri sıraya eklemek için getIds()
yöntemi çağrılır.
Bağlantılayıcı, birden fazla depoyu veya kuruluşu dizine ekleyebilir. Bir hatanın etkisini en aza indirmek için tek seferde bir GitHub deposu taranır. Geçişin sonuçlarıyla birlikte, getIds()
'e yapılan sonraki çağrılarda dizine eklenecek depoların listesini içeren bir kontrol noktası döndürülür. Bir hata oluşursa dizine ekleme işlemi, baştan başlamak yerine mevcut depoda devam ettirilir.
collectRepositoryItems()
yöntemi, tek bir GitHub deposunun geçişini işler. Bu yöntem, sıraya aktarılacak öğeleri temsil eden bir ApiOperations
koleksiyonunu döndürür. Öğeler, kaynak adı ve öğenin mevcut durumunu temsil eden bir karma değeri olarak aktarılır.
Karma değeri, GitHub depolarının sonraki geçişlerinde kullanılır. Bu değer, ek içerik yüklemek zorunda kalmadan içeriğin değişip değişmediğini belirlemek için basit bir kontrol sağlar. Bağlayıcı, tüm öğeleri gizli bir şekilde sıraya koyar. Öğe yeniyse veya karma değeri değiştiyse kuyrukta sorgulanabilir hale getirilir. Aksi takdirde öğe değiştirilmemiş kabul edilir.
Sıra işleniyor
Tam tarama tamamlandıktan sonra bağlayıcı, dizine eklenmesi gereken öğeler için sırayı yoklamaya başlar. getDoc()
yöntemi, sıradan alınan her öğe için çağrılır. Yöntem, öğeyi GitHub'dan okur ve dizine ekleme için uygun şekilde dönüştürür.
Bağlayıcı, herhangi bir zamanda değiştirilebilecek canlı verilerle çalıştığından getDoc()
, sıradaki öğenin hâlâ geçerli olup olmadığını da doğrular ve artık mevcut olmayan tüm öğeleri dizinden siler.
Bağlayıcı dizinlerindeki her bir GitHub nesnesi için ilgili indexItem()
yöntemi, Cloud Search için öğe temsilini oluşturma işini ele alır. Örneğin, içerik öğelerinin temsilini oluşturmak için:
Ardından arama arayüzünü dağıtın.