Google Suggest
Cristiano writes "As you type into the search box, Google Suggest guesses what you're typing and offers suggestions in real time. This is similar to Google's 'Did you mean?' feature that offers alternative spellings for your query after you search, except that it works in real time." It crashes Konqueror, but works nicely on Mozilla. Update: 12/11 by J : The engineer who thought of it, then built it in his "20% time," blogs about the process.
> loose
Google
------
Did you mean: lose?
Yeah, Slashdot needs this badly.
It would be cool if it didn't suck.
Wonder how it'll hold up when it gets out Beta though...it's bound to be pretty computationally intensive.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
Type in g. Then type o. Then type o again. And again. Keep typing o's... Look what happens :-)
[ Niagra Falls ]
[Google Search] [I'm Feeling Lucky]
Did you mean viagra?
Not mine. Worked like a charm. Version 3.3.2 on Gentoo Linux 64bit
...Steve
That when you enter "P", the first suggestion is "Paris Hilton"? I guess this just proves that porn really does drive every new technology ;-)
I typed "tits" and it drew a blank.
Laws are for people with no friends.
... and I get SEARS !? SEARS is not sexy. It is probably the extreme opposite. ... eh... need extremely "quick" results.
Google needs to open there eyes and know that some people (mostly male I assume) need extremely quick "relevant" results when they are out of passwords, and
I wonder how long it will take before companies are able to pay for their 'suggestions' to show up at the top of the list.
Hmmm....
:)
p -> paris hilton
po -> poems
por -> porsche
I'd say it's pretty obvious what I intend to search for. This thing is utterly useless. (Although, in it's favour, I must say the Paris Hilton first link was pretty good.)
* It works on KHTML-based Safari, so it the crash must be a Konq-specific problem.
* It ignores, um, non-work-safe input.
* It works fine on moderately esoteric topics -- I started typing n-s-a-r and it found NSArray, NSArrayController, NSArchiver, etc.
It is blazingly fast. I expected it to be slowwwww.
Can somebody outline how it works?
Well it definitely makes it easier to look for google whacks
I make my face look like this and concerned words come out.
I don't mind Google knowing what I ask, but I'm not sure I want the world to see them.
Mencken had it right. So glad that's old news.
"It looks like you are searching for lesbian porn, would you like some help with that?"
"It looks like you are searching for lesbian porn again, do you remember what I showed you last time?"
"I know, I know, Lesbian porn,and can you rate these pages so I can update my page index?"
"Hello freak, try these"
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
A is for Amazon
B is for Best Buy
C is for CNN
D is for Dictionary
E is for Ebay
F is for Firefox (yay!)
G is for Games
H is for Hotmail
I is for Ikea
J is for Jokes
K is for Kazaa
L is for Lyrics
M is for Mapquest
N is for News
O is for Online dictionary
P is for Paris Hilton (wtf?!)
Q is for Quotes
R is for Recipes
S is for Spybot
T is for Tara Reid
U is for Ups
V is for Verizon
W is for Weather
X is for Xbox
Y is for Yahoo
Z is for Zip Codes
Give me Classic Slashdot or give me death!
... how they prioritize the suggestions in the list. It's definitely not by the number of results per suggestion. Are there any revenue opportunities here for GOOG?
"My mother never saw the irony in calling me a son-of-a-bitch." - Jack Nicholson
I figured I would look up mountain biking. However, in my quick typing I entered mountian instead and it continued and accepted that. It gave me many valid searches, which I probably wouldn't have found if I entered the search string properly. Of course, it did indicate that mountain was spelled incorrectly as normal.
I figured this could be a useful feature as you probably don't make an effort to misspell your entries, yet many items on the web could have useful information with the misspelled word. So, I entered mount to see the completion, and no mountian, just correctly spelled words.
I guess we'll just have to continue to misspell everything.
Before more people complain that their browser doesn't work, here's [labs.google.com]what google specifies as the browser requirements.
He effected a bored affect.
I remember long back, one thread on slashdot where it was discussed how microsoft patented the idea of showing the options as the user types in. I am not sure though.
What Google really needs is a for pay LexisNexis tab so you can find real information from real sources in real time. That and a tab that indexes full text medical and science journals. Those damn journals! I love em but I don't have hundreds of dollars a year for each Psych. journal I want to read and hate going to libraries if I just want to see what's shaking in the world of science. With full text periodicals and full test journal search Google would become a singularity of information.
I have a list of queries, which I repeat every day or week or so. FireFox has now gathered them in its own form autocomplete. Now google interferes that with queries, I don't want to submit.
Konq 3.3.2.
/usr/kde/3.3/lib/libkdecore.so.4 /usr/kde/3.3/lib/libkhtml.so.4 /usr/kde/3.3/lib/libkhtml.so.4 /usr/kde/3.3/lib/libkhtml.so.4 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1 /usr/kde/3.3/lib/libkjs.so.1
Try using it for a while and you'll get.
Using host libthread_db library "/lib/libthread_db.so.1".
[KCrash handler]
#7 0x409cfe74 in av_ () from
#8 0x41b6df56 in KJS::XMLHttpRequest::abort ()
from
#9 0x41b6f333 in KJS::XMLHttpRequestProtoFunc::tryCall ()
from
#10 0x41aeef77 in KJS::DOMFunction::call () from
#11 0x41c7332b in KJS::Object::call () from
#12 0x41c3b09d in KJS::FunctionCallNode::evaluate ()
from
#13 0x41c3f54a in KJS::ExprStatementNode::execute ()
from
#14 0x41c45c16 in KJS::SourceElementsNode::execute ()
from
#15 0x41c3f36d in KJS::BlockNode::execute () from
#16 0x41c3f8ce in KJS::IfNode::execute () from
#17 0x41c45c16 in KJS::SourceElementsNode::execute ()
from
#18 0x41c3f36d in KJS::BlockNode::execute () from
#19 0x41c45143 in KJS::FunctionBodyNode::execute ()
from
#20 0x41c6de0c in KJS::DeclaredFunctionImp::execute ()
from
#21 0x41c6d1bc in KJS::FunctionImp::call () from
#22 0x41c7332b in KJS::Object::call () from
#23 0x41c3b09d in KJS::FunctionCallNode::evaluate ()
from
#24 0x41c3f54a in KJS::ExprStatementNode::execute ()
from
#25 0x41c45c16 in KJS::SourceElementsNode::execute ()
from
#26 0x41c3f36d in KJS::BlockNode::execute () from
#27 0x41c3f8ce in KJS::IfNode::execute () from
#28 0x41c45c8c in KJS::SourceElementsNode::execute ()
from
#29 0x41c3f36d in KJS::BlockNode::execute () from
#30 0x41c3f8aa in KJS::IfNode::execute () from
#31 0x41c45c8c in KJS::SourceElementsNode::execute ()
from
#32 0x41c3f36d in KJS::BlockNode::execute () from
#33 0x41c3f8ce in KJS::IfNode::execute () from
#34 0x41c45c16 in KJS::SourceElementsNode::execute ()
from
#35 0x41c3f36d in KJS::BlockNode::execute () from
#36 0x41c3f8ce in KJS::IfNode::execute () from
#37 0x41c45c16 in KJS::SourceElementsNode::execute ()
from
#38 0x41c3f36d in KJS::BlockNode::execute () from
#39 0x41c45143 in KJS::FunctionBodyNode::execute ()
from
#40 0x41c6de0c in KJS::DeclaredFunctionImp::execute ()
from
#41 0x41c6d1bc in KJS::FunctionImp::call () from
#42 0x41c7332b in KJS::Object::call () from
#43 0x41c3b09d in KJS::FunctionCallNode::evaluate ()
from
#44 0x41c3f54a in
thank God the internet isn't a human right.
Its javascript, using the XMLHTTP object to communicate with the server directly
You can see it http://www.google.com/ac.js cant say i understand it, Gmail using the same thing but way more advanced.
"In a time of universal deceit - telling the truth is a revolutionary act." - George Orwell
This was mentioned in another story last night but I thought it was funny.
;)
If you go to the page and type "George Bush is a" you get some interesting suggestions.
You mean like scholar.google.com? Or something more where you could pay to get the full text? I definitely wish I could click on Google Scholar's results and get the full text right there with a uniform interface and without having to log in or pay other people.
0 is for 02
1 is for 1
2 is for 2004 Election
3 is for 3m
4 is for 411
5 is for 50 cent
6 is for 60 minutes
7 is for 7th heaven
8 is for 89.com
9 is for 911
Incoming fire has the right of way. Have a nice day.
Looks nice, but what happens when you type "the"?
"the incredibles"
Is anyone else seeing the advertising possibilities?
The source for the page is quite simple; most of the work happens in a condensed JavaScript library. Not easy reading (note the word "condensed" above, meaning function and variable names are 1 or 2 chars, and all extra whitespace was removed...), but it's actually pretty straightforward.
It disables your browser's autocomplete on that textfield (for obvious reasons). Then it basically just defines a hidden div for that auto-complete dropdown (variations on this depending on browser... frickin' incompatibilities).
Each time you type a character, it populates that div body with the results of a quick, tiny query back to Google. It's NOT running the search for you; it's hitting (I assume) a simple, probably totally in-memory list of the most popular searches and number of results. That's how it can be so quick a response -- the lookup on their end is super-minimal, and the data to be transferred is probably less than 1k each time.
Cool. Nice concept, nice execution. And one of those nice "only obvious in hindsight" additions.
Even cooler -- it looks like (from the js file) they are supporting multiple languages here, not just English. Anyone using want to test this out for me? I think even Chinese is supported (or maybe that's the one that isn't.. I don't want to take the time to parse this properly).
http://www.google.com/ac.js
The Javascript is ripped to shreds as far as readability goes, but buried in there somewhere is the key to making your own app based on this. If you were so inclined to piggy-back on top of this technology. Not that I'd advocate such things.
See Google Scholar for a service that might do just that one day. It was previously covered on Slashdot here.
5 letters into 'slashdot' --- here I am reading slash fanfiction. This is just diverting me from my original goal. I - ooh, Kirk & Spock?! brb...
So they screwed up Groups. What does that have to do with Suggest, which looks like a classic "awesome! why didn't anyone else do it that way?" Google feature?
I don't know what kind of crack I was on, but I suspect it was decaf.
I'll try this myself: What does n represent in this case? The number of pages in google's database, the number of words or phrases in their database? The length of the search string?
I would really like to know where you came across this. Can point us to a discription of the algorithm?
I got a real kick out of some of the suggestions.
... hates you ... breath smells like cat food ... hates me ... is an alien
... is gay ... sucks ... cheated on me ... hates me ... dumped me
... gay
my cat:
my girlfried:
(No suggestions, obviously Google is run by a pack of lonely nerds).
my boyfriend:
(Okay, make that an apparently gay pack of lonely nerds).
darth vader is:
(A delusional pack of gay nerds?)
Oh, the fun I'll have with this new toy when I'm bored at work.
Despite what EULAs say, most software is sold, not licensed.
What? Are you trying to rewrite history in some way? I would say that the acceptance of Microsoft products have never really been higher than it is today. All OS's they had before 2k were disgraces. XP is popular and far from the resource hog slashdotters like to pretend that it is (have a look at any other desktop environment), in fact the system requirement leap between 2k and XP was far smaller than many jumps before when factoring in the progress of hardware. I don't see anything wrong with the current development tools that Microsoft has either (in fact, they too sure seem to be better today than they have ever before been).
Really, the last five years of Microsoft products have done a lot to convince me that MS knows what they are doing, Linux seems further from being able to conquer the desktop market today than it did in 1999.
Try searching with sex, porn etc. no results. It is in some safety mode or what?
It does go back to the server, load the page and kill your internet - it will no longer work.
Yes, Google is testing one of the coolest features I've ever seen on a website...
They sure are starting to suck.
Ironically, the word ironically is often used incorrectly.
I agree with your conclusion, but I just had to stop and point out that you don't condone one-handed sex searching. Hilarious!
Careful though, some pervs our there might think you were talking about wanking, jagging, or otherwise masturbating. (Horrors!) They might not get your true message about amputees.
I keed, I keed. I was just very amused with puritanical way you approached the subject, and that you went the extra step not to condone it.
I used to bulls-eye womp-rats in my pants
In the IE version, here is the function (for those curious how it all works, download www.google.com/ac.js)
w ActiveXObject("Microsoft.XMLHTTP")}catch(oc){A=nul l}}if(!A&&typeof XMLHttpRequest!="undefined"){A=new XMLHttpRequest()}return A}
function jb(){var A=null;
try{A=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{A=ne
This function is obviously copyright google, inc., but being presented here for educational purposes only.
Leonid S. Knyshov
Find me on Quora
...Google suggestion is renamed to "Skynet" by the company that acquired Google, Cyberdyne systems. Skynet is said to be fully operational. Soon it will become "aware".
-Randy
Type in g. Then type o. Then type a. Then type t. Aiyeee! I just wanted goat feeding instructions!
We recently had heard in the office over one of the Yellow Machine that's made by Anthology Solutions.
This is the same mechanism by which the Gmail application receives its data. It seems like Google has become a big fan of this XMLHTTP object and its Mozilla cousin. It's a great way to give web applications access to live data without requiring a page refresh.
samrolken
I just posted that from work. I'm such an idiot
Ohh! One more thing I just found, check it:
u e&qu=natalie%20portman - The results in a nice pretty array!
http://www.google.com/complete/search?hl=en&js=tr
Movie News - "Entertainment news, bitch!"