MozSearch wspiera podpowiedzi wyszukiwania; gdy użytkownik wprowadza dane w panelu wyszukiwania, Firefox 2 przesyła zapytanie do adresu URL określonego przez wtyczkę wyszukiwarki, aby dostarczyć dynamiczne podpowiedzi wyszukiwania.
Gdy lista zostanie dostarczona, może ona być wyświetlona w wyskakującym okienku (popup), które pojawia się pod panelem wyszukiwania i pozwala użytkownikowi wybrać jeden z sugerowanych wyników. Jeśli użytkownik będzie kontynuował wpisywanie, zażądany zostanie nowy zestaw podpowiedzi z silnika wyszukiwarki i zastąpi on obecnie wyświetlaną listę.
Wtyczki wyszukiwania Yahoo i Google dołączone z Firefoksem 2 obsługują podpowiedzi wyszukiwania.
Implementowanie obsługi podpowiedzi we wtyczkach wyszukiwarek
Aby obsługiwać podpowiedzi wyszukiwania, wtyczka musi posiadać zdefiniowany dodatkowy element <Url>
wraz z atrybutem type
ustawionym na "application/x-suggestions+json"
(oznacza to, że wtyczka wyszukiwarki obsługująca podpowiedzi będzie mieć dwa elementy <Url>
, z których jeden jest głównym adresem URL typu text/html
i odpowiada za wyszukiwarkę).
Na przykład, wtyczka wyszukiwarki Yahoo posiada taki wpis <Url>
:
<Url type="application/x-suggestions+json" template="https://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/>
Jeśli użytkownik wprowadzi "fir" w panelu wyszukiwania, po czym się zatrzyma, Firefox umieści "fir" w miejsce {searchTerms}
i wyśle zapytanie do takiego adresu URL:
<Url type="application/x-suggestions+json" template="https://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/>
Wyniki są używane do stworzenia okienka z listą podpowiedzi.
Zobacz Tworzenie wtyczek MozSearch, aby dowiedzieć się więcej o tym, jak zaimplementować wtyczkę wyszukiwarki.
Implementowanie obsługi podpowiedzi na serwerze
Większość z obsługi podpowiedzi wyszukiwania jest obecnie implementowane po stronie serwera. Jeśli jesteś projektantem strony internetowej i chcesz wspierać podpowiedzi wyszukiwania, musisz zaimplementować obsługę zwracania podpowiedzi w Notacji Obiektu JavaScript (JavaScript Object Notation - JSON).
Gdy przeglądarka chce otrzymać możliwe wyniki dla szukanego wyrażenia, wysyła ona żądanie HTTP GET do adresu URL określonego w elemencie <Url>
.
Wtedy Twój serwer powinien wybrać podpowiedzi, które jego zdaniem pasują do określonych warunków wyszukiwania i stworzyć JSON, który składa się z co najmniej dwóch i co najwyżej z czterech elementów:
- łańcuch zapytania
- Pierwszy element w JSON jest oryginalnym łańcuchem znaków zapytania. Pozwala to Firefoksowi zweryfikować czy podpowiedzi odpowiadają obecnym warunkom wyszukiwania.
- lista dopełnienia
- Tablica sugerowanych warunków wyszukiwania. Tablica powinna być ograniczona nawiasami kwadratowymi. Na przykład: <tt>["warunek 1", "warunek 2", "warunek 3", "warunek 4"]</tt>
- opisy
- Ten opcjonalny element jest tablicą, składającą się z opisów dla każdej podpowiedzi określonej w elemencie lista dopełnienia. Mogą to być dodatkowe informacje, które silnik wyszukiwarki może zwrócić do wyświetlenia przez przeglądarkę, jak na przykład ilość wyników dostępnych dla tego wyszukiwania.
- adresy URL zapytania
- Ten opcjonalny element jest tablicą alternatywnych adresów URL dla każdej podpowiedzi w elemencie lista dopełnienia. Na przykład, jeśli chcesz zaproponować mapę odnośników zamiast strony z wynikami wyszukiwania dla podanej podpowiedzi, możesz w tej tablicy zwrócić adres URL do mapy.
- Jeśli nie określisz adresu URL zapytania, użyte zostanie domyślne zapytanie oparte na wyszukiwarce opisanej przez element
<Url>
w opisie XML wtyczki wyszukiwania.
Na przykład, jeśli wyrażeniem wyszukiwania jest "fir" i nie zwracasz opisów i alternatywnych adresów URL zapytania, możesz zwrócić następujący JSON:
["fir", ["firefox", "first choice", "mozilla firefox"]]
Zauważ, że w tym przykładzie określony jest tylko łańcuch zapytania i lista dopełnienia, z pominięciem elementów opcjonalnych.
Twoja lista dopełnienia może zawierać tyle wiele podpowiedzi, ile tylko chcesz, jednak powinna ona być łatwa w obsłudze, zwłaszcza że będzie ona dynamicznie uaktualniana podczas wpisywania przez użytkownika słów do wyszukania. Ponadto metoda, której będziesz używał do wyboru podpowiedzi, zależy wyłącznie od Ciebie.