HMS Search Kit için Python Istemcisi

Sezer BOZKIR
Huawei Developers - Türkiye
4 min readFeb 25, 2021

Selamlar,

Bu yazımda HMS dünyasının bize sağladığı özelliklerden Search Kit’i tanıyacak ve python ile yazdığım Search Kit’i kullanarak arama yapmayı nasıl kullanabileceğimize göz atacağız.

HMS Search Kit Nedir?

Günümüzde birçok uygulama kendi içerisinde arama özelliğine sahip. Bu arama işlemini yapmak için kullanabileceğimiz araçlara bir alternatif olarak Search Kit’ten bahsedebiliriz.

Yakın zamanda Huawei siteniz ya da veritabanınız içerisinde de arama yapmaya imkan sağlayacak bir özelliğin ekleneceğini de söylemiş durumda.

Android uygulamalar için sağladığı özellikler ise şöyle:

Selection Search

Rest API kullanarakta entegrasyonunu yapabildiğimiz, python client kullanarakta faydalanabileceğimiz arama motoru özelliklerini native olarak uygulama içerisinde de kullanmanıza imkan tanıyan özellik. Entegrasyon adımları için şuraya bakabilirsiniz.

Bu yapıyı kullanarak yapabileceğimiz arama çeşitleri:

  1. Web Search
  2. Image Search
  3. Video Search
  4. News Search

Custom Search

Uygulamanız Search Kit’i entegre ettikten sonra web sayfası aramasına dayalı olarak arama için filtreleme yapmanıza veya aramayı çeşitli bölgelere göre düzenlemenize imkan sağlayan özelliğidir. Dil, bölge, sayfa numarası ve bir sayfada döndürülen arama sonuçlarının sayısını gerektiği gibi ayarlayabilirsiniz. Arama için bir hedef alan adı da belirttiğinizde, yalnızca bu alan adından gelen sonuçlar döndürülür.

Uygulamanıza entegre etmek için gereken adımlara şuradan bakabilirsiniz.

Auto Suggestion

Uygulamalar içerisinde otomatik tamamlama özelliği artık birçok uygulamanın standartlarından olmaya başladı. Bu özellik sayesinde 10 kelimeye kadar EditText gibi kısımlarda otomatik öneri sistemini kullanabilmek mümkün.

Uygulamanıza entegre etmek için gereken adımlara şuradan bakabilirsiniz.

Spelling Check

Uygulamanız içerisinde hatalı kelime yazımı ya da düzeltme önerisi sunmak istediğinizde imdadınıza yetişen bu özellik sayesinde kullanıcılarınızın (örneğin: bir not uygulamasında) çok daha temiz kayıtlar tutmasını sağlayabilirsiniz.

Uygulamanıza entegre etmek için gereken adımlara şuradan bakabilirsiniz.

Python Istemcisi

Bu yapı ile ilgilenirken, “aslında bunu python ile direkt kullanabileceğimiz bir yapı olsa, arama kısmından birçok alanda faydalanmak mümkün olurdu” dedim ve bir istemci yazmak için kolları sıvadım. Bu istemciyi kullanarak “Selection Search” in sağladığı tüm arama tiplerini kullanabilmek mümkün:

Ayrıca parametreler ile işim yok, global arama yapacağım diyorsanız sadece aramak istediğiniz kelimeleri belirterekte arama yapabilmek mümkün:

Istemciye Aplikasyon Bilgilerini Hazırlama

Arama motorunu kullanabilmek için, ilk adımda Client ID ve Client Secret bilgisini oluşturduğunuz Client’a girmeniz gerekmekte. Bu bilgileri alabilmek için bir Huawei developer hesabınızın olması gerekmekte. Hesabın nasıl açılabileceğine şuradan bakabilirsiniz. Geliştirici hesabı açtıktan sonra, yeni bir uygulama oluşturmak resmi dökümantasyon için şuraya veya buradaki medium makalesine bakarak kolayca ilk uygulamanızı oluşturabilirsiniz.

Artık uygulamamız ve geliştirici hesabımız olduğuna göre, “Search Kit”i aktive edebiliriz:

AppGallery Console -> My Projects -> [PROJE_ADI] -> Project Settings -> Manage APIs -> Search Kit

Arkaplan hazır olduğuna göre uygulamamızın bilgilerini almak için şuradaki makaleyi takip edebilirsiniz.

Python Projelerine Istemciyi Yükleme

Bu noktada isterseniz github reposunu indirdikten sonra, reponun olduğu dizine geçtikten sonra;

pip install .

şeklinde yükleyebilir ya da (GNU/Linux ya da Windows farketmez) terminalden:

pip install git+https://github.com/Natgho/HMS-Search-Kit-Python-Client.git@master

şeklinde kütüphaneyi projenize dahil edebilirsiniz.

Uygulamanız içerisinde çağırmak içinse 2 satır yeterli:

client = HMSSearchKit("CLIENT_ID", "CLIENT_SECRE")
client.full_search('aramak istediğiniz metin')

Arama sonucu size bir dictionary dönecek, bu dictionary içerisinde:

  1. Sorgu sonucu kaç verinin döndüğü (count)
  2. Sorgu sonucu verisi (search_results)
  3. sorguladığınız metin (search_string)
  4. arama tipiniz (search_type)

bilgilerini göreceksiniz.

Birkaç sorgu örneği:

Entegrasyonunu yaptığım özellikler dışında, HMS Search Kit’in sahip olduğu diğer özelliklere şuradan göz atabilirsiniz: HMS Search Kit

Github reposu: HMS Search Kit Python Client

Merak ettiklerinizi Huawei developer forum üzerinden veya admin@sezerbozkir.com mail adresimden ulaşarak sorabilirsiniz.

Başka bir yazımda görüşmek üzere… :)

--

--