Miroslav Holec
Premium

Seznamte se s Bing Search API a Azure Marketplace

Miroslav Holec   13. září 2015  update 29. března 2016

Tento článek je již zastaralý. Článek nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

Během prvního roku života tohoto blogu jsem překročil hranici 50 článků, čímž nastala akutní potřeba přidat na web vyhledávání. Původně jsem chtěl napsat jednoduché vyhledávání pomocí full textu ale nakonec jsem se rozhodl implementovat vyhledávání Bing. Právě na seznámení se a ukázku implementace Bing Search API je zaměřen tento článek.

K rozhodnutí použít Bing Search API jsem došel z mnoha důvodů:

  • jednoduché a rychlé rozhraní (jsem líný psát si něco vlastního)
  • relevantní výsledky (spíše než kdybych si to psal sám)
  • hledání na celém webu (řadu stránek nemám v databázi)

Seznamte se s Bing Search API

Dobrým startem je navštívení stránky Bing Dev Center, na které je aktuální přehled dostupných služeb z datového tržiště Microsoft Azure Marketplace. Na stránce jsou články z vývojářského blogu a odkazy na různé ukázky a tooly je stažení.

Seznam API

Pro rychlý start stačí vybrat Bing Search API, čímž dojde k přesměrování na datové tržiště a zde se konečně vybere druh plánu dle počtu transakcí (počtu requestů proti API). Prvních 5000 dotazů je zdarma.

Přehled placených plánů

Na této stránce je v dolní části velmi užitečný odkaz Explore this dataset, kde je možné si zkusit posílat proti API requesty.

Explore Dataser Bing Search API

Na této stránce je také vidět počet zbývajících transakcí daného plánu a po kliknutí i primární API klíč. API klíče a vůbec celý účet lze spravovat na stránce account datového tržiště. Zde je možné nalézt přehled všech používaných API, počty dostupných a zbývajících transakcí včetně licenčních podmínek.

Implementace

Nejsnazší cesta implementace Bing Search API je použitím připravené C# library. Ta je ke stažení na stejné stránce, kde se volí typ plánu.

Knihovnu je následně možné přidat do svého projektu a velmi snadno ji použít. V případě MVC aplikace může vypadat implementace takto:

[HttpPost]
public ActionResult Search(string term = null)
{
    if (string.IsNullOrEmpty(term))
        return View(new List<WebResult>());

    string url = "https://api.datamarket.azure.com/Bing/Search";
    BingSearchContainer search = new BingSearchContainer(new Uri(url))
    {
        Credentials = new NetworkCredential(BingSearchApiKey, BingSearchApiKey)
    };

    var query = search.Web(string.Concat("site:miroslavholec.cz/blog ", term), null, null, "cs-cz", null, null, null, null);

    return View(query.Execute().ToList());
}

Vhodné je upozornit na třídu NetworkCredential, která v konstruktoru přijímá dvakrát stejný API klíč, který lze nalézt na stránce svého účtu.

Klientský kód může být minimalizován do formy jednoduchého formuláře.

<form action="home/search" method="POST">
    <input type="text" value="" name="term">
    <input type="submit" value="Bing it!">
</form>

Další odkazy

Na závěr

Použití Bing Search API je velmi jednoduché a hodí se dodat, že je možné ho velmi podobným způsobem využít i pro hledání obrázků nebo jiných typů souborů. Živou ukázku vyhledávání můžete najít i na tomto blogu v záhlaví nebo přímo zde: