Visit Mozilla.org

Podpora našeptávače ve vyhledávacích modulech

Z MDC


MozSearch podporuje při vyhledávání našeptávání. Jak uživatel zadává hledanou frázi v poli vyhledávání, Firefox 2 se dotazuje speciální URL adresy uvedené ve vyhledávacím modulu na odpovídající návrhy.

Při obdržení tohoto seznamu zobrazí seznam pod polem vyhledávání a dá uživateli možnost si z odpovídajících návrhů vybrat. Pokud uživatel pokračuje v zadávání, je odeslán nový požadavek na odpovídající návrhy. Po přijetí je seznam aktualizován.

Ve Firefoxu 2 podporují našeptávání vyhledávací moduly Google a Yahoo.

[editovat] Implementace podpory našeptávání ve vyhledávacím modulu

Pro podporu našeptávání vyhledávací modul potřebuje definovat <Url> element navíc s atributem type nastaveným na "application/x-suggestions+json". (To znamená, že vyhledávací modul s podporou našeptávání bude mít dva elementy <Url>. Tím druhým bude hlavní text/html s URL pro vyhledávání.)

Například vyhledávací modul Yahoo má tuto <Url> položku:

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/>

Pokud uživatel zadá do pole vyhledávání "fir" a přestane psát, Firefox vloží "fir" na místo {searchTerms} v dotazu na URL:

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/>

Výsledkem použití této konstrukce je našeptávání v poli vyhledávání.

Pro informace, jak vytvořit vyhledávací modul ve formátu MozSearch, se podívejte do článku Vytváření vyhledávacího modulu MozSearch.

[editovat] Implementace podpory našeptávání na straně serveru

Hlavní část našeptávání je aktuálně implementována na straně serveru. Pokud jste webový vývojář a chcete podporovat našeptávání, potřebujete implementovat podporu pro navracení odpovídajících frází v JavaScript Object Notation (JSON).

Když prohlížeč chce získat odpovídající návrhy pro vyhledávaný výraz, pošle HTTP GET požadavek na URL adresu uvedenou v elementu <Url>.

Váš server by měl rozhodnout, jaké návrhy nabídne k použití (dle svého uvážení) a zkonstruovat JSON, který se skládá z dvou až pěti elementů:

řetězec s dotazem
První element v JSON je originální řetězec s dotazem. To umožní Firefoxu ověřit, zda návrhy odpovídají aktuálně zadané frázi pro vyhledávání.
seznam návrhů
Pole s návrhy pro našeptávač. Pole by mělo být uvedeno v hranatých závorkách. Například ["term 1", "term 2", "term 3", "term 4"]
popisy
Tento volitelný element je pole popisů pro každý návrh v seznamu. Může obsahovat jakoukoliv další informaci, kterou vyhledávací modul může chtít po návratu zobrazit v prohlížeči stejně, jako třeba počet výsledků dostupných pro vyhledávání dané fráze.
Popisy nejsou podporovány ve Firefoxu 2 a pokud jsou uvedeny, jsou ignorovány.
URL parametry
Tento volitelný element je pole alternativních URL pro každý návrh v seznamu. Pokud chcete například nabídnout mapu odkazů místo pouhých výsledků vyhledávání pro daná návrh, chcete v tomto poli navrátit URL do mapy.
Pokud neuvedete vyhledávací URL, je použita výchozí URL popsaná v elementu <Url> v popisu XML vyhledávacího modulu.
Vyhledávací URL nejsou ve Firefoxu 2 podporovány a při uvedení jsou ignorovány.

Pokud je dotazováno na výraz "fir" a vy nepotřebujete navracet popisy či alternativní vyhledávací URL, získáte následující JSON:

["fir", ["firefox", "first choice", "mozilla firefox"]]

Berte prosím v potaz, že toto je příklad, kde je uveden pouze vyhledávaný řetězec a návrhy bez volitelných elementů.

Váš seznam může obsahovat tolik návrhů, kolik chcete, ale navracejte jich jen tolik, aby byly spravovatelné a korektně zobrazitelné uživateli, když vyhledává. Metoda, jakým způsobem budete vybírat návrhy, je čistě na vás.