Jakieś pomysły na to, jak dokładnie działa nowe błyskawiczne wyszukiwanie Google? Wygląda na to, że to tylko wywołania AJAX do starego wyszukiwania, ale dość trudno jest tak bardzo uprościć Google. Czy ktoś ma spekulacje?
EDYCJA: Wiem, że z każdym naciśnięciem klawisza wysyłany jest AJAX, ale czy jest to predykcyjne? A może myślisz, że to tylko zwykła stara wyszukiwarka Google?
ajax
search
google-search
google-instant
DexterW
źródło
źródło
Odpowiedzi:
AKTUALIZACJA: Google właśnie opublikowało artykuł na blogu o nazwie Wyszukiwanie dynamiczne Google, zakulisowy . To ciekawa lektura i oczywiście związana z tym pytaniem. Możesz przeczytać, na przykład, jak poradzili sobie z dodatkowym obciążeniem (5-7X zgodnie z artykułem) po stronie serwera. Poniższa odpowiedź bada, co dzieje się po stronie klienta:
Badając za pomocą Firebug , Google wykonuje żądanie Ajax GET przy każdym naciśnięciu klawisza:
Myślę, że działa to tak samo, jak automatyczne uzupełnianie. Jednak tym razem zwraca również wyniki wyszukiwania częściowo kompletnej frazy wyszukiwania w formacie JSON .
Badanie jednej z odpowiedzi JSON podczas wpisywania „Stack Overflow”:
Widzimy, że odpowiedź JSON zawiera treść do konstruowania wyników wyszukiwania podczas pisania.
Sformatowane odpowiedzi JSON wyglądają mniej więcej tak:
Dalsza lektura nietechniczna:
źródło
Jak powiedzieli inni, Google natychmiast zwraca wyniki dla najlepszego wyniku sugerowanego przez Google Suggest . Dlatego jeśli wpiszesz fac , Google Sugeruje, że piszesz na Facebooku . Co ciekawe, tylko częściowa wyszukiwana fraza, fac , jest wysyłana do Google w żądaniu JSON, więc Google Suggest jest używany na obu końcach.
W rzeczywistości wyszukiwania nie są wykonywane po każdym naciśnięciu klawisza. Jeśli piszesz wystarczająco szybko, niektóre mogą zostać pominięte.
Podejrzewam, że nie zwiększa to obciążenia serwerów Google tak bardzo, jak mogłoby się wydawać. Większość dodatkowych wyszukiwań dotyczy bardzo popularnych słów, gdy zaczynasz wpisywać rzeczy - jeśli zaczniesz szukać czegoś zaczynającego się na f , to wyszuka facebook , jeśli zaczniesz szukać czegoś zaczynającego się na ju , wyszuka justina biebera . Dzięki buforowaniu te wyszukiwania nie są zbyt drogie.
źródło
To jest przewidywalne. Wyniki wyszukiwania pochodzą z pierwszej sugestii autouzupełniania (lub wybranej, jeśli naciśniesz strzałkę w dół lub najedziesz myszką na sugestię).
Innymi słowy, jeśli wpiszę „winyl s”, pierwsza sugestia autouzupełniania będzie brzmiała „siding winylowy”, a wyniki wyszukiwania wyraźnie pokazują „siding winylowy”. Jeśli wyszukam w Google zwykłe hasło „winyle”, wyniki wyszukiwania będą inne.
Tak więc wyszukiwanie błyskawiczne Google jest predykcyjne w taki sposób, że zwykłe wyszukiwania Google nie są… wyszukuje sugerowane autouzupełnianie zamiast dosłownego niedokończonego zapytania wyszukiwania.
źródło
Konwersja pierwszej wartości z klucza
u
w odpowiedzi Ajax odpowiedzi Daniela Vassallo daje adres URL , który następnie prowadzi do (nieprawidłowego) kodu JSON. Nie jestem jeszcze pewien, do czego służy ten kawałek.d
Daje pewne HTML, który zostanie wstawiony na stronę. Oto nieco zdekompresowana wersja . Jest to głównie tag skryptu, który przekazuje 2 kolejne fragmenty kodu HTML do funkcjije.pa()
. Wydaje się, że te fragmenty są takie same, jak wyniki wyszukiwania, które nie są natychmiastowe.źródło
Jakiś czas temu napisałem dość popularny interfejs do natychmiastowego wyszukiwania dla wyszukiwarki Solr. To naprawdę proste, więc powinieneś być w stanie spojrzeć na kod i zrozumieć ogólne pojęcia http://fergiemcdowall.github.io/solrstrap/
źródło