Welcome to MSDN Blogs Sign in | Join | Help
"Brilliant" MSDN Search

When people learn that I work on MSDN and TechNet, one of the first things I hear is that our Search solution is really terrible. The best way to find something on our sites, they say, is to use Google.

 

A year ago I would have agreed, but now I’m proud to be able to tell people that we’ve been updating Search over the past year, and they should really take another look.

 

I had a fun experience last night that illustrates just how far we have come. Tim and Drew, developer friends from Brisbane, Australia are in town and came over to my place to hang out. We yakked about all the normal stuff—families, politics, American accents—but as web guys, we ended up talking shop a lot.

 

I proudly demoed our new forums and bookmarks applications, and they were duly impressed, but one of them said, “You know what I really can’t stand about MSDN? It’s the search—it’s just terrible. I just use Google.”

 

Well, this was a great opportunity, so I said, “When’s the last time you used MSDN search?” They both said they had given up on it a year or two ago, so I said, “Check this out…” and proceeded to show off our new Search app, focusing especially on refinements and auto-complete.

 

“Wow, that’s pretty interesting,” said Drew, “but let me see how it works on something I really care about—try search for the Win32 CreateWindow function—I use it all the time.” I did as he asked, typing only “create” into the search box before “createwindow” showed up as the fourth item, then a “w” so it was first. Selecting it and pressing enter, Drew was pleased to see CreateWindow() show up as the first item in the results list. He also like that there was a “Win32” refinement so he could narrow the results to Win32 content only.

 

“This is great.” Growing ambitious, Tim added, “What really pisses me off about Google is how it strips out all punctuation, which is vital when searching for programming terms.” He asked me to search for the XmlDocument.CreateElement method. “It would be really great if you search supports periods.”

 

I typed “xmldocument” and Timsaw a bunch of autocomplete terms with “dots” in them. “This looks promising--I'm ecstatic,” he said. I typed a couple more characters to get “xmldocument.c” and “xmldocument.createelement” was listed as the second item. I selected it and the results came back with all the different versions XmlDocument.CreateElement() listed first.

 

“This is absolutely brilliant,” said Tim. “This is exactly the stuff I was searching for today. I’ll definitely start using MSDN search again.”

 

For someone who five minutes earlier was saying that MSDN search is not any good, this was a great transformation to see.

 

Posted: Wednesday, June 04, 2008 11:32 AM by Jeff Day

Comments

rkpatrick said:

Today it doesn't appear to be returning Spanish & German results when I search from an en-US page, which is good (although it was doing that as recently as last week). That was by far the biggest reason I couldn't use MSDN search.

That being said, Google's guilty of that to this day, not to mention it's been so polluted with noise from about.com et al over the years that it takes me 5x as long to get a relevant hit than it did when I first started using it.

# June 4, 2008 3:25 PM

Chris.blog.Microsoft said:

I'm hearing from the folks on the floor at TechEd that our 3.0 release of search is getting raves. I

# June 4, 2008 3:47 PM

Jeff Day said:

rkpatrick,

We did update Search last week, and it included lots of bug fixes. One of our goals has been to clean up the English results to be English only.

The devs I mention in my post, Tim and Drew, were complaining that the old version of Search often had French results too, so they were happy to see that problem fixed.

# June 4, 2008 4:07 PM

Kara O'Connor said:

I conduct a MSDN search weekly, and dread doing it every week. I find that it does not pick up key words effectively, nor do search strings work well. Also, the site tends to crash on Internet Explorer, so I have to use Firefox, ironically. I usually end up having to manually look through pages of MSDN material becuase the search function is so awful.

# June 4, 2008 4:37 PM

Jeff Day said:

Kara,

I'd like to better understand your experiences? Can you email details to me? jeffday@microsoft.com.

Jeff

# June 4, 2008 4:49 PM

Drew Berkemeyer said:

Jeff, I read this post the first day it came out and was impressed with what you describe. I've had a couple of opportunities to use the AJAX enabled MSDN search since then and have been impressed. Today, however, I was disappointed.

I am working on an XSLT project that I inherited. The existing code contains a line that reads:

<xsl:for-each select="$node/cda:component/cda:bodyChoice/cda:StructuredBody/cda:component/cda:section">

Since I'm new to this, I am not sure what exactly $node returns. When searching my local MSDN documentation didn't return any useful links for the "$node" notation, I turned to MSDN online in hopes that your updated search would give better results. I was dissappointed to find out it does not.

What I found was that if I search for $node on the MSDN home page it returns a bunch of pages that contain the text "node", which doesn't help much at all. Then, if I type $node in the advance search page, there are no results returned in the AJAX drop down at all.

Considering that developers depend on special characters such as $[]* et al to do our jobs and examples pages include code containing those characters, it is disappointing to see that MSDN falls into the same trap as Google and other search engines that strip those characters out of a search string, since doing so renders search engines useless for finding such examples on the Net.

Please work with your team to find a way to incorporate advanced search strings that will return all pages that contain the text "$node" when I type "$node" into the search box.

Thanks for listening.

# July 16, 2008 5:47 PM

Bryan Thomas said:

Drew, the dollar sign indicates a named variable in XSL. You have something like this in your document:

<xsl:variable name="node">FooBar</xsl:variable>

And the value “foobar” is referenced by using the “$node” pointer syntax.  

The search API does seem to scrub out dollar signs, so that’s something we will talk to Live Search about.

Thanks!

Bryan Thomas

MSDN Development Lead

P.S. Tim Pearson says "hi!"

# July 17, 2008 4:13 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker