Plně integrovaný Google Custom Search

Čím více poznávám služby Google, tím více se mi líbí. S odhozením XHTML a implementací Google Custom Search (provázané na AdSense) jsem mohl konečně vyzkoušet i přímé / plně integrované zobrazení výsledků Google hledání na tomto webu. Výsledek vypadá velice dobře. Nakonec, vyzkoušejte si to, políčko pro hledání je vpravo nahoře 🙂

Celá implementace je přitom velice triviální, jedná se jen o vložení dvou JavaScript kódů, které vám vygeneruje Google Co-Op, jeden tvoří vyhledávací políčko a ten druhý zobrazení výsledků. Kvalita prohledávání webu pomocí Google je přitom podstatně lepší než vestavěný fulltext v MySQL 4.x/5.0. Jen samozřejmě doporučuji mít vždy kompletně zpracovanou a aktualizovanou mapu webu, a provádět „ping“ na Google při vložení nového článku (Google jej poté ihned zaindexuje).

Update:

Po četných připomínkách v komentářích i na MSN jsem tento postup aktualizoval. Výsledky hledání se nyní zobrazují jako samostatná stránka, na níž nejsou žádné další články ani reklama, takže se načítá opravdu velice rychle. Celé to přitom samozřejmě zapadá do stylu WELL.DONE.

Pokud chcete podobnou věc implementovat i ve své instalaci BLOG:CMS, postačí nahradit jeden řádek v globalfunctions.php, a to $query = requestVar('query'); za $query = requestVar('q');, do SEARCH vzhledu doplnit JavaScript od Google, a v kódu přehodit pořadí sekce if ($itemid) s if ($query).

Vlastní SEARCH vzhled vypadá poté takto triviálně:

<%ExtraSkin(header)%>
<h2>Hledání na WELL.DONE od Google</h2>
<%ExtraSkin(sitesearchresult)%>
</div>
<div id='menu'>
<%ExtraSkin(sitesearch)%>
<%ExtraSkin(counter)%>
<%ExtraSkin(footer)%>

Komentáře 25

  1. #1 Googlista

    To je síce pekné, že je dobre mať spravenú sitemapu, ale čo s webmi, napríklad diskusnými fórami alebo portálmi kde sa nachádza aj pár desiatok tisíc podstránok (články, diskusie na fóre a ich stránkovanie)?

  2. #2 Machi

    Google zaindexuje stránku hned pouze v případě, že se na ní nachází Google AdSense 😉 Jinak to ovšem vypadá skvěle...

  3. #3 Cycle

    A ještě jsem zkusil místo klávesy Enter stisknout tlačítko "Hledání zde" (což by dle popisku mělo způsobit skok na rozšířené vyhledávání, jak chápu text na tomto tlačítku, nebo alespoň na samostatnou vyhledávací stránku), nicméně se nestalo vůbec nic.

  4. #4 Bobesh

    To vyhledávání jsem zkoušel, ale má to svý mouchy. Zkusil jsem například vyhledat svoje příspěvky (podle přezdívky) a u pár odkazů to vyhodilo nalezený text v komentáři, ale odkaz ukazoval na zcela jiný článek, kam jsem nepřispíval, ale jinak dobrý 🙂

  5. #5 stulda

    Výsledky hledání jsou možná lepší, ale tohle javascriptové řešení se mi příliš nezamlouvá. A proč výsledky hledání nezobrazuješ na samostatné stránce? Mylím, že je zbytečné pod výsledky zobrazovat obsah předchozí stránky.

  6. #6 Lukáš Pokorný

    např. k diskuznímu fůru by určitě šel dopsat plug-in, který by sitemapu automaticky upgradoval.

  7. #7 Ati

    Pěkný, líbí, užitečný, dík. Pěkné a klidné svátky a v Novém Roce jen tak dál. Ati

  8. #8 Petr

    Povedlo se ti do výsledků připojit AdSense? Zkoušel jsem to a i když jsem zadával správné údaje - email, PSČ a konec telefonu, tak mi to hlásilo že takový AdSense účet neexistuje 🙁

  9. #9 mylan

    Chybička sa asi vloudila, ale vyhľadávanie mi funguje len na hlavnej stránke webu. Pri článkoch vedie formulár vyhľadávania na daný článok a tak sa výsledky hľadania nezobrazia...

  10. #10 Ján "johno" Suchal

    Mne to vyhľadávanie nefunguje. Teda na konkrétne tejto podstránke. Na titulnej strane to ide.

    Firefox 2.0

  11. #11 Radek Hulán autor webu ▲10 ▼0

    [10] díky, opraveno, zapomněl jsem přenastavit CACHE plugin..

  12. #12 Michal

    oprava: Já nevím, ale mě to hledání nefunguje

  13. #13 Ondra Kelka

    Tak jsem to zkusil použít na svém webu a bohužel nefunguje mi čeština, tedy tak jak má. Na webu si na všechny stránky přidám searchbox a odkážu ho třeba na hledej.asp a tam vložím dotyčný javascript. Zadám slovo "škola" a v QueryStringu je mimojiné q=%9Akola - to odpovídá písmenu š např. podle této tabulky. Dostanu bohužel známý čtvereček. Celkem nefunguje pro písmena š, ž, ť. Podle této stránky jsem postižen chybou kódování Windows1250 VS ISO. Celý web je samozřejmě ve Win1250. Na webu myego.cz funguje škola bez problémů. Takže předpokládám, že google nechce pracovat s Win1250, nebo se mýlím? Co dělám špatně?

  14. #14 Radek Hulán autor webu ▲10 ▼0

    [1] podle mého názoru se na fórum Google hledání vůbec nehodí, každý má v patičce nějaký podpis, a Google není schopen rozlišit, co je podstatný text a co je pouze podpis, a poté třeba hledá text "AMD X2" a nachází jej na všech stránkách..

  15. #15 Radek Hulán autor webu ▲10 ▼0

    [12] zjevně máš blokovaný iframe s výsledky hledání ve svém browseru.. Je to jen tvoje chyba.

    [13] ano, Google pracuje s UTF-8, můžeš použít urldecode() a poté iconv('cp1250','utf8',$s)

  16. #16 Gizmo

    Mám problém, šířka výsledků hledání je standartně 600, já mám však užší stránku. Dá se to nějak změnit?
    gizmo@tiscali.cz

  17. #17 Radek Hulán autor webu ▲10 ▼0

    [16] nastav si AdSense na "bottom-top", nikoliv na stranu, a změň si v definici JavaScriptových proměnných číslo "600" na "500".

  18. #18 Tomáš Halada

    Zajímavý tip, díky. Jde ovlivnit zobrazení odkazu "Podobné stránky" v gogole výsledcích?

  19. #19 SneakerXZ

    Tohle je velice pěkný. 🙂

    Jinak Google Adsense platí za každý pokus o hledání nebo jen když někdo v hledání klikne na reklamu?

  20. #20 Radek Hulán autor webu ▲10 ▼0

    [19] jen za kliknutí na reklamu, samozřejmě..