Introducing Document Link Handler for MOSS 2007 Enterprise Search

Posted Friday, October 31, 2008 1:30 PM by CoreyRoth

Since, I have started working with Enterprise Search, I have received many requests looking for ways to improve what we can do with documents.  The search results screen in MOSS, as flexible as it is, has always been lacking in features compared to search results of other ECM systems.  Common feature requests I have seen from clients include:  editing the document, viewing properties, linking to the folder or document library, linking to the site the document is in, zip and download, view version history, and more.  Today I am pleased to announce a simple solution which can handle many (but not all) of these common requests.

So how do we accomplish this?  I decided to build a simple ASP.NET Handler (.ashx) file to parse the URL from a document on the search results page and redirect a user to the page that he or she wanted.  Links to the handler can easily be added by modifying the XSL of the CoreResultsWebPart.

The code of the handler is pretty simple.  I take the URL passed via query string, split it to get the filename and the path and then I open an SPWeb object that references that site.  Once I have access to an SPFolder and SPFile object for the document, I can determine URLs for the document library and folder.  Take a look at the code if you are interested.  It might need some optimization, but it is a good starting point.

Installation is simple.  Install the included .wsp file contained in the package folder.   The syntax is listed in the readme.txt file if you need it.  This will copy the DocumentLink.ashx file into your layouts folder.  To add the links to your search results, go to the results page of your search center and edit your CoreResultsWebPart.  In the Data View Properties, click on the XSL Editor button.  Replace the XSL in the window with the contents of the included SampleCoreResults.xslt file.  If you have already made customizations to this file or you only want certain links, you may copy just the lines you need from the readme.txt file.

After you have changed the XSLT, apply the changes and execute a search query.  If you receive an error, then your XSL is probably malformed.  Open the XSL with Visual Studio if necessary to help find the error.  If all goes well, you should have search results that look like the one below.  Note, that these links will only show up for search results that are documents (IsDocument:1).  This works together in conjunction with my post earlier this week on adding an edit document link to search results.

SearchResultsDocumentLinks

The binaries and source code are available at CodePlex.  If you have any issues, please log them there on the Issue Tracker.  If you have any idea of other kinds of links we can provide off of a document library, please leave a comment.  This can also be used with the Wildcard Search web part.  Hopefully this will help many others out there deliver even richer search solutions to their customers.  Thanks.

Document Link Handler for MOSS 2007 Enterprise Search

Comments

# China & Tibet

Sunday, November 2, 2008 6:32 AM by China & Tibet

Pingback from  China & Tibet

# Extending the Document Link Handler for MOSS 2007 Enterprise Search « Devology Solutions Blog

Pingback from  Extending the Document Link Handler for MOSS 2007 Enterprise Search «  Devology Solutions Blog

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Wednesday, October 20, 2010 3:34 PM by Raghu

Can we make this as a dropdown what we see i.e. Title with edit menus?

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Thursday, March 10, 2011 1:38 AM by Tom

Hi,

I installed your Doc Link handler. Edit is working fine, but on click on any other option (History, Properties and etc.) I am getting "File not found" message.

I re-checked and handler is there (layouts/tempaltes/dotnetmafia folder). Any ideas?

10x

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Wednesday, May 18, 2011 7:22 PM by Bill

I made some minor changes, did a build, followed your readme and it all work just peachy. Exactly what I wanted. Thanks Corey.

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, May 20, 2011 12:57 PM by Bill

Well, I thought everything was peachy after installing this solution. My problem is with the View/Edit Properties. Sometimes it works, sometimes the browser throws a 404-page not found error. If I look at the link for the redirect, it looks fine and I can input this link in the browser and it opens the document of reference. There is no rhyme or reason that I can detect as to why some work and some don't. The go to folder and version history links work 100%, just the view properties fails most of the time(but not all). I am stumped. Any suggestions?

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, May 20, 2011 1:18 PM by CoreyRoth

@Bill Maybe there is an issue with the way I am parsing the URL on those documents.  You rebuilt it on your own correct?  Have you tried debugging it and seeing if there is an exception.

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, May 20, 2011 1:54 PM by Bill

Corey, thanks for the reply. I will need to wait till after hours to really mess around with de-bugging, and this is my first stab at any SharePoint C# stuff, I mostly write form applications. So to be honest, and to admit my stupidity, I have no idea how to debug a web application. I looked at your code, it looks solid to me when parsing/building the URL. This is not a show stopper, the business insisted on a way to get to the parent folder and that works perfect, this would just be an added bonus. Any advice on de-bugging would be much appreciated.

Again, thanks for the reply.

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, October 28, 2011 12:27 PM by Brian

Hi Corey,

Is this also easily done in SharePoint Standard 2010 Search?  I have been looking, without luck, for this exact kind of answer (only with an additional link to "E-Mail a Link" with those other actions).

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, January 6, 2012 12:59 PM by CoreyRoth

@Brian I have had confirmation that this does work in SharePoint 2010 as well (although I haven't tried).  I think you could use the same technique for E-mail a link.  Although, a bit more work would be involved since you would have to collect the E-mail address to send to.

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Thursday, February 16, 2012 8:22 AM by Robert

I am guessing this thread is now dead, but I am trying to get this working in SP2010. I have had it working in SP2007 with no problems. However, I just cant get it to work. Has anyone done so and if so, can you post the differences? It compiles just fine on the SP2010 server, deploys fine via stsadm, I have the proper lines in the results.aspx, but it just wont render anything in the search page. I am stumped, I hope someone is still watching this thread and can help. Thanks!

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Thursday, February 16, 2012 10:28 PM by CoreyRoth

@Robert I have had a few people tell me that it works in SharePoint 2010 but I haven't had time to verify it myself.  If it's not showing up I would look carefully at where you are adding the lines to the XSL as that is likely the problem.  Try it in a few spots with just some test text.  Once you find the right spot, you can add the code back in.  For an example of a good spot, see this post.

www.dotnetmafia.com/.../adding-a-link-to-a-document-s-folder-in-sharepoint-2010-enterprise-search.aspx

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, February 17, 2012 9:10 AM by Robert

Thanks for the reply Corey, I will have a look, but I have tried inserting the code in a few different places, and even threw in some standard HTML that rendered just fine so I "think" I have the correct placement. However, I am not sure the conditional test is working as I have seen a number of different ways to do this via XSL on google searches. I will try removing the conditional and see if the URL's render.  Thanks again for the reply, good to see this post is not dead! This really is very handy to have the go to folder when there are multiple associated documents in the same folder.

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Friday, February 17, 2012 1:44 PM by Robert

Corey, the link you provided got the job done. It is working just fine. I was doing 2 things wrong. First, I had my conditional syntax wrong. Second, I was editing the search results web part XSL and not going through the Search Service Application as you suggest in the link provided. All is well and I thank you a MILLION!

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Monday, February 20, 2012 8:45 PM by CoreyRoth

@Robert Excellent.  Glad it is working for you!

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Monday, June 4, 2012 2:28 PM by Daniel

Is it anyway possible to get this for WSS 3.0?  I only need to be able to see the Document Properties

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Wednesday, June 6, 2012 1:33 PM by CoreyRoth

@Daniel the only supported way to use that snippet with WSS 3.0 is by adding Search Server Express.

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Thursday, September 6, 2012 10:13 AM by subbu

Is there a similar solution for adding a "Check In" " Check Out" link in the search results?

# re: Introducing Document Link Handler for MOSS 2007 Enterprise Search

Thursday, September 6, 2012 10:29 AM by CoreyRoth

@subbu Not that I know of.  One could possible be developed.

Leave a Comment

(required)
(required)
(optional)
(required)