ShipIt V – Sage 2.0

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.

Published

in

Related Content

More in ‘

Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119
Company News
Announcing social enterprise discounts: Atlassian tools for social impact teams

Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119
Leadership
Great managers meet uncertainty with curiosity and confidence

Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119
Company News
Introducing Databricks Query Runner: Transforming data into insight

Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119
Company News
Team ’25 Europe: AI that’s changing the game for teams

More Collections


Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119

Meet Rovo everywhere: AI that connects every app, every team, every workflow


Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119

Introducing Atlassian Software Collection


Warning: Undefined array key “link” in /srv/users/atlassian/apps/atlassianstaging/public/wp-content/plugins/curator/template-parts/cards/article-card.php on line 119

Move Faster and Work Smarter with Atlassian’s AI-Powered Teamwork Collection