sketchboard blog

Search Inside Your Online Whiteboard

We are happy to introduce a new search with content matches. It strives to show relevant findings with highlighted terms.

New Sketchboard Content Search with Highlight

For many years, Sketchboard indexed board content and showed the search result with board thumbnails. Based on your visual memory, you were able to choose the correct match.

Sketchboard Old Visual Search Result

However, the actual search matches were not shown, what kind of context the term has, and what was the exact keyword used. It was good, most of the time, but it could have been better. Especially now that teams have created more online whiteboards with Sketchboard over time.

When Sketchboard shows the search result, on the first row, it shows the board name. After that, it shows diagram/shape element text fragments that match the search, with a direct URL to the shape on your whiteboard.

Sketchboard Old Visual Search Result

When you click the board title, Sketchboard opens the board as usual. In case, you directly select the matched shape by clicking the shape link in the search result. Sketchboard opens the board, and navigates to the element by centering it on your browser.

Shape links also work within a board. When you click a shape link inside a board, Sketchboard navigates to the shape. If you have more than one shape id on a link, Sketchboard navigates to referred shapes and centers the board on them.

URL format for a shape link is:

https://sketchboard.me/[board_id]/[shape_id1,shape_id2]

The shape URL can be used directly on any web page to target a certain shape or shapes.

<a href='https://sketchboard.me/[board_id]/[shape_id]'/>A direct shape link</a>

Sketchboard doesn’t allow you to access a shape link easily other than using the search. In addition to search, you can access the shape link by copying the shape to the clipboard. Please send us feedback to request a more straightforward way to get shape id(s) quickly!

By default, content search uses a fuzzy search. Fuzzy search matches within a specified edit distance. E.g., when searching

team

Can lead to finding terms such as:

teams
term

Fuzzy search is sometimes too broad. You can change the search to an explicit match by using quotes on a search term(s).

"content marketing"

Preview Viewer for Search Result

Sometimes the search result is not good enough. Then you can use Preview Viewer to have a close look for the board thumbnail. Preview Viewer allows you to navigate through the matched board thumbnails.

View search result with Preview Viewer

Indexing Frequency

Sketchboard indexes your online whiteboard content after a few minutes you have updated the board. It is not exactly realtime, but quite close. Now it is easier to find the correct board later and directly navigate to the desired shape.

We decided to go with the new search implementation with Bleve search, which is a Go language library.

Why we went with Bleve search instead of ElasticSearch?

  • Go language allows ease of deployment
  • Fits nicely into our development and production stack
  • Ease of development, configuration, and updates
  • Relatively fast
  • No need to use JVM

Elastic search is probably the top-notch solution on the search engine frontier, but Bleve is mostly good enough. At least for now. Time will tell if the performance and search results are good enough when using Bleve.

Production load

Bleve search cons: sometimes, the startup takes a lot of time. It can be over 2 minutes for a store of the size of 15 GB.