Arama widget'ı, web uygulamaları için özelleştirilebilir bir arama arayüzü sağlar. Uygulamak için minimum düzeyde HTML ve JavaScript gerektirir ve yönler ile sayfalara ayırma gibi yaygın özellikleri destekler. Arayüzü CSS ve JavaScript ile de özelleştirebilirsiniz.
Daha fazla esnekliğe ihtiyacınız varsa Query API'yi kullanın. Query API ile arama arayüzü oluşturma başlıklı makaleyi inceleyin.
Arama arayüzü oluşturma
Arama arayüzünü oluşturmak için şu adımlar gerekir:
- Arama uygulaması yapılandırma
- Uygulama için bir istemci kimliği oluşturun.
- Arama kutusu ve sonuçları için HTML işaretlemesi ekleyin.
- Widget'ı sayfaya yükleyin.
- Widget'ı başlatın.
Arama uygulaması yapılandırma
Her arama arayüzü için Yönetici Konsolu'nda tanımlanmış bir arama uygulaması gerekir. Uygulama, veri kaynakları, özellikler ve arama kalitesi parametreleri gibi sorgu ayarları sağlar.
Arama uygulaması oluşturmak için Özel arama deneyimi oluşturma başlıklı makaleyi inceleyin.
Uygulama için istemci kimliği oluşturma
Cloud Search API'ye erişimi yapılandırma bölümündeki adımlara ek olarak web uygulamanız için bir istemci kimliği oluşturun.
Projeyi yapılandırırken:
- Web tarayıcısı istemci türünü seçin.
- Uygulamanızın kaynak URI'sini girin.
- İstemci kimliğini not edin. Widget için istemci gizli anahtarı gerekmez.
Daha fazla bilgi için İstemci Tarafı Web Uygulaması için OAuth 2.0 başlıklı makaleyi inceleyin.
HTML biçimlendirmesi ekleme
Widget için şu HTML öğeleri gerekir:
- Arama kutusu için bir
inputöğesi. - Öneri iletişim kutusunu sabitlemek için kullanılan bir öğe.
- Arama sonuçları için bir öğe.
- (İsteğe bağlı) Faset kontrolleri için bir öğe.
Bu snippet'te, id özellikleriyle tanımlanan öğeler gösterilmektedir:
Widget'ı yükleme
Yükleyiciyi <script> etiketi kullanarak ekleyin:
onloadGeri arama sağlayın. Yükleyici hazır olduğunda API istemcisini, Google ile Giriş'i ve Cloud Search modüllerini yüklemek için gapi.load() işlevini çağırın.
Widget'ı başlatma
İstemci kitaplığını gapi.client.init() veya gapi.auth2.init() ile istemci kimliğiniz ve https://www.googleapis.com/auth/cloud_search.query kapsamınızla başlatın. Widget'ı yapılandırmak ve bağlamak için oluşturucu sınıflarını kullanın.
Örnek başlatma:
Yapılandırma değişkenleri:
Oturum açma deneyimini özelleştirme
Kullanıcılar yazmaya başladığında widget, oturum açmalarını ister. Kişiselleştirilmiş bir deneyim için web sitelerinde Google ile oturum açma özelliğini kullanabilirsiniz.
Kullanıcıları doğrudan yetkilendirme
Oturum açma durumlarını izlemek ve yönetmek için Google ile oturum açma özelliğini kullanın.
Bu örnekte, düğme tıklaması için GoogleAuth.signIn() kullanılmaktadır:
Kullanıcıların oturumunu otomatik olarak açma
Oturum açma sürecini kolaylaştırmak için kuruluşunuzdaki kullanıcılar adına uygulamaya önceden yetki verin. Bu özellik, Cloud Identity-Aware Proxy ile de kullanışlıdır. Google ile oturum açma özelliğini BT uygulamalarıyla kullanma başlıklı makaleyi inceleyin.
Arayüzü özelleştirme
Widget'ın görünümünü değiştirmek için:
- CSS ile stilleri geçersiz kılma.
- Adaptörle süsleme öğeleri.
- Adaptörle özel öğeler oluşturma.
CSS ile stilleri geçersiz kılma
Widget kendi CSS'sini içerir. Bunu geçersiz kılmak için özgüllüğü artırmak üzere üst öğe seçicileri kullanın:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Desteklenen CSS sınıfları referansına bakın.
Öğeleri adaptörle süsleme
Oluşturma işleminden önce öğeleri değiştirmek için bir bağdaştırıcı oluşturup kaydedin. Bu örnekte özel bir CSS sınıfı ekleniyor:
İlk kullanıma hazırlama sırasında bağdaştırıcıyı kaydedin:
Adaptörle özel öğeler oluşturma
Özel kullanıcı arayüzü bileşenleri oluşturmak için createSuggestionElement, createFacetResultElement veya createSearchResultElement öğelerini uygulayın. Bu örnekte HTML <template> etiketleri kullanılmaktadır:
Adaptörü kaydedin:
Özel yön öğeleri aşağıdaki kurallara uymalıdır:
- Tıklanabilir öğelere
cloudsearch_facet_bucket_clickableekleyin. - Her grubu
cloudsearch_facet_bucket_containeriçine alın. - Yanıtın sıralamasını koruyun.
Örneğin, aşağıdaki snippet, onay kutuları yerine bağlantıları kullanarak yönleri oluşturur.
Arama davranışını özelleştirme
İstekleri bir bağdaştırıcıyla yakalayarak arama uygulaması ayarlarını geçersiz kılın.
İstekleri yürütülmeden önce değiştirmek için interceptSearchRequest'yı uygulayın. Bu örnek, sorguları seçili bir kaynakla sınırlandırır:
Adaptörü kaydedin:
Kaynaklara göre filtreleme için bir seçim kutusu görüntülemek üzere aşağıdaki HTML kullanılır:
Aşağıdaki kod, değişikliği dinler, seçimi ayarlar ve gerekirse sorguyu yeniden yürütür.
Ayrıca, bağdaştırıcıda interceptSearchResponse uygulayarak arama yanıtını engelleyebilirsiniz.
Sürümleri sabitleme
- API sürümü: Başlatmadan önce
cloudsearch.config/apiVersionolarak ayarlayın. - Widget sürümü:
gapi.config.update('cloudsearch.config/clientVersion', 1.1)kullanın.
Ayarlanmamışsa her ikisi de varsayılan olarak 1,0 olur.
Örneğin, widget'ı 1.1 sürümüne sabitlemek için:
Arama arayüzünü güvenli hale getirme
Web uygulamaları için en iyi güvenlik uygulamalarını takip edin. Özellikle tıklama tuzağı saldırılarını önlemek için bu uygulamaları takip etmeniz önemlidir.
Hata ayıklamayı etkinleştirme
Hata ayıklamayı etkinleştirmek için
interceptSearchRequest
kullanın:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;