Hyvin useasti sisällön hakemista varten sovelluksiin kehitetään yksinkertaisia hakutoiminnallisuuksia, jolloin hakutoiminnallisuudet ovat toteutettu tietystä näkökulmasta ja voivat olla suhteellisen rajallisia. Azure Cognitive Search, aikaisemmin nimellä Azure Search tunnettu palvelu tarjoaa etenkin Azure-ympäristössä kehitettäviä sovelluksia varten hakumoottorin sisällön hakemista varten. Sen avulla voidaan helposti toteuttaa monipuolisia hakuominaisuuksia sekä Azuressa, että yksityisessä ympäristössä olevaan sisältöön. Hakumoottori mahdollistaa helposti monipuolisen datan indeksoinnin ja hakuominaisuuksien käyttämisen yksinkertaisella syntaksilla.

Tekstin analysointi
- Tekstin prosessointi indeksoinnin ja kyselyn suorituksen aikana
- Hakusanojen suodattaminen ja paloittelu
- Lauseiden jäsentely hakusanoiksi
Tekoäly ominaisuudet
- Sisällön kääntäminen eri kielille ja kielen tunnistus
- Ihmisten, paikkojen ja muiden sisältöjen tunnistaminen raakatekstistä
- Avainsanojen tunnistaminen
- Tekstin tunnistaminen binäärisisällöstä
- Kuvien tunnistaminen hakusanoiksi
Azure Cognitive Search resurssin luominen
Hakumoottorin käyttöönottaminen aloitetaan luomalla uusi Azure Cognitive Search resurssi haluttuun resurssiryhmään. Käyttöönottaminen vaatii olemassa olevan Azure tilauksen. Resurssin luomisen jälkeen hakumoottori on käytettävissä REST API–rajapinnan kautta osoitteessa, joka on muodossa https://[hakupalvelu].search.windows.net, jossa [hakupalvelu] on resurssille annettu nimi. Rajapinnan käyttämistä varten tarvittava API-avain löytyy luodun resurssin kohdasta ”Keys”.

Sisällön tuominen
Sisällön tuominen aloitetaan Import data–toiminnolla. Sisältöä voidaan tuoda Azuressa tai yksityisessä ympäristössä sijaitsevasta sisällöstä. Sisältöä on mahdollista tuoda myös muualta esimerkiksi Azure Data Factoryn avulla. Määritykset sisällön tuomiseksi on myös mahdollista tehdä ohjelmallisesti.

Alla olevassa esimerkissä sisältöä tuodaan Azure SQL tietokannasta Import Data –toiminnon kautta. Tietokannasta määritetään tuotavaksi ”Hotels” nimisessä taulussa oleva sisältö. Lisäksi yhteydelle määritetään nimi, sekä tarvittavat autentikointitiedot yhteyden luomiseen.

Indeksointi ja haettavan sisällön määrittäminen
Tuotuun sisältöön määritetään indeksointi, jota käytetään hakujen tekemiseen. Azure Cognitive Search muodostaa haut sisältöön määritettyjen indeksointien mukaisesti. Indeksointiin määritetään tuotavalle sisällölle tyypitys alla olevan listauksen mukaisesti.
Retrievable
- Sisältö näkyy hakutuloksessa
Key
- Uniikki arvo, joka identifioi sisällön
Filterable
- Arvoa voidaan käyttää hakutuloksen suodattamisessa
Sortable
- Arvoa voidaan käyttää hakutuloksen järjestämisessä
Facetable
- Arvoa voidaan käyttää hakutuloksen ryhmittelyyn
Searchable
- Arvo otetaan mukaan sisältöön, johon haku suoritetaan
Alla esimerkki, jolla uusi hakuindeksi luodaan Azure Portalin kautta Azure SQL tietokannasta tuotavaan sisältöön. Indeksointeja on mahdollista myös määrittää eri ohjelmointikielille saatavilla olevien kirjastojen kautta. Indeksiin on määritetty tuotavan sisällön arvoille erilaisia tyypityksiä sen mukaan mihin sisältöön haku halutaan kohdistaa ja mitä arvoja halutaan sisällyttää hakutulokseen.

Hakumoottorin käyttäminen
Azure Cognitive Search–hakumoottoria voidaan käyttää eri ohjelmointikielillä REST API–rajapinnan kautta. REST API–rajapinnan käyttäminen vaatii API–avaimen sisällyttämisen kutsuihin.
Eri ohjelmointikielille on saatavilla kirjastot (SDK) hakurajapinnan käyttämistä varten. REST API–rajapinnan kautta voidaan määrittää hakuehdot ja suodatus haulle. Hakuehdot lisätään endpoint-osoitteen perään. Käytettäessä kirjastoa hakurajapinnan käyttöön, osoite hakuehtoineen muodostetaan automaattisesti.
Alla esimerkki hakumoottorin käyttämisestä Azure Portalin kautta, jossa on näkyvissä annetut hakuehdot kohdassa ”Query string”, sekä hakuun käytetty osoite kokonaisuudessaan kohdassa ”Request URL”. Annetuilla hakuehdoilla palautuu kaksi hakutulosta.

Hakuominaisuuksien hyödyntäminen
Azure Cognitive Search mahdollistaa sisällön tuomisen helposti eri lähteistä, sekä hakuindeksien määrittämisen. Hakuja voidaan tehdä monipuolisesti REST API–rajapinnan kautta ja integroida haku osaksi esimerkiksi Azure ympäristöön rakennettuun järjestelmään. Hakumoottori mahdollistaa myös tekoälyominaisuuksien hyödyntämisen erilaisista sisällöistä hakemiseen joiden toteuttaminen muutoin olisi työlästä.
Tämän tekstin kirjoitti konsulttimme Mikko Sallinen.
Kiinnostuitko?
Ota yhteyttä, jos tarvitset apua hakutoiminnallisuuksien kanssa Azure-ympäristössä tai olet kiinnostunut muista palveluistamme. Autamme sinua mielellämme.
Seuraa meitä somessa:
Tutustu myös näihin:


Azure RBAC (role-based access control)
Azure RBAC helpottaa Azure resurssien oikeuksien hallintaa roolijaoilla sekä mahdollistaa oikeuksien tarkan määrityksen.


Mikropalveluarkkitehtuuri ja Azure Functions
Perinteisessä sovellusarkkitehtuurissa käyttöliittymän taustalla on yleensä palvelukerros, joka koostuu rajapinnoista. Sovelluksen koon mukaan rajapintoja voi