Andreas Knecht, JIRA Developer

Problem


Sage is our search engine that powers http://search.atlassian.com/. It currently looks like this:

It's not really very much of a search engine, as it simply collates results from several different resources (e.g. Confluence docs, JIRA bugs, Jive forum threads, etc) in a nice format. Whilst the initial interface currently available on http://search.atlassian.com/ has served as well, as we add more products, it's becoming a little slow and difficult to navigate. Even though searches are run in parallel, results only show up once the slowest resource has completed. Also, as we add more resources, a better way of organizing content was needed. Another unrelated problem was that Jive Forum queries were broken since moving to Jive Forums 5.5 in which Jive completely redid the RPC interface (webservices vs hessian RPC).

Solution


The interface needed to be asynchronous. Also all resources should be organized in tabs, such that users could navigate to the resource of their choice with a simple click. Finally the UI needed a major facelift (to be provided by our UI team). Forum queries also had to be resurrected.

Execution


The interface was redone using the Yahoo javascript UI library. This provided a nice way of adding search results in tabs, as well as progress bar, and a separate little panel with a search result summary (which can be dragged and closed). All communication to the server is handled by DWR, which required only minimal changes to the backend services involved in running a search. Exposing these services was dead simple since Sage is based on Spring, and DWR supports this very nicely (I was able to simply reference the Spring beans in my DWR configuration):
<dwr>
  <allow>
      <create creator="spring" javascript="SearchSupport">
          <param name="beanName" value="searchManager"/>
      </create>
      <create creator="spring" javascript="SearchableResourceManager">

          <param name="beanName" value="searchableResourceManager"/>
      </create>
      <convert converter="bean" match="com.atlassian.sage.search.SearchResult"/>

      <convert converter="bean" match="com.atlassian.sage.search.*"/>
      <convert converter="bean" match="com.atlassian.sage.resource.*"/>
  </allow>

</dwr>
Cross-browser testing presented probably the major obstacle since despite using the YUI libraries all sorts of browser quirks popped up. For example on Internet explorer, the progress bar starts in the middle and expands to both sides, whereas on all other browser, it simply scrolls from the left to the right (as expected). Some of these are still not resolved (and probably never will be).

Result


Sage 2.0 is now available on http://search.atlassian.com/atlassian-sage-2.0.2/:

There's still a couple of minor little bugs to iron out, but as soon as that's done we'll switch to Sage 2.0.

8 Comment(s)

The popup results window is a nifty visual effect, but it's a lot of clutter. How about changing the colour of the tabs (some kind of inactive -> active transition) as search results come in from that resource?

By Charles Miller at May 15, 2007 6:21 PM

I agree. I've already modified the tabs to now display the number of search results once added. I'll probably make the text bold as well (or change the background colour of the tab).

The little results pop-up was more of an experiment with the YUI toolkit to see how difficult something like that would be to implement. It doesn't work properly cross-browser anyway (doesn't show up in Safari, and it's not draggable in IE).

By Andreas Knecht at May 15, 2007 6:32 PM

There's a few things that seem to have got lost in this update too mate.

I agree with Charles that the popup window is a little useless. Would be much better in the tabs.

The tabs should also show you how many matches there are for that resource (perhaps with 0 matches greying out the tab slightly).

Within a tab, there is no more pagination - danger Will Robinson!

Also, in the 'all' tab, you no longer get 'More' links if there are more than 3 matches.

By Mike Cannon-Brookes at May 17, 2007 12:14 AM

Is there any chance of Sage being released, be it open source or as a product? This would be an excellent tool for anyone using the products that sage interfaces with.

By Daniel Murley at July 19, 2007 7:23 PM

Hi Daniel,

I'm afraid this wont happen any time soon. Sage has always only been a little side project for us. There'd be a lot of work involved in productising it and we need more resources just four our current suite of products!

Cheers,
Andreas

By Andreas Knecht at July 19, 2007 9:36 PM

Andreas, Mike,

I'd like to echo Daniel's request for the source for sage to be made available, even if not as as product. I have a number of clients who want to be able to search their JIRA and Confluence instances and stare blankly at me when I saw that the two products don't have an integrated search capability.

~Matt

By Matt Doar at January 23, 2008 12:09 PM

We need to operate five instances of Jira and Confluence, this product/feature would be a real help !

~Rainer

By Rainer Bugow at January 24, 2008 4:47 AM

Dear Friends,

We needs to search Confluence and JIRA instances for search our KM. SAGE is the key for this capability.

Please, turn the source for sage to be available.

Kind Regards,
Roberto

By Roberto Lima at September 12, 2008 12:11 PM

Post a comment

If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.





Remember personal info?

Type the characters you see in the picture above.