A frequent complaint we get is the lack of a search feature on the site and we get that. It’s frustrating to us too. We’d like to add it but are still looking at the "right way" to do it which I’ll discuss at more length below but for now I’d like to discuss a couple of relatively simple workarounds.
The Current Workarounds
Google Site Search
This is the same as Google’s custom search which some sites use but provides a "sub par" experience.
This is the full "index" of our JavaDoc. It doesn’t include everything obviously it doesn’t include cn1libs and some information might be missing but the ability to use the browser search within that page is very valuable.
3rd Party Hosts
One of the bigger problems is that a lot of our content isn’t on our site. Searching stackoverflow is rather convenient but you should do it within the tag itself otherwise it might be needle in a haystack: http://stackoverflow.com/tags/codenameone
Why don’t we "just" Implement Search?
We use JBake for our backend. We still have a dynamic server and could do some logic (e.g. lucene) in there but it seems like a "mess" when dealing with static data. This is compounded by the fact that some of our searchable data comes from different sources (e.g. JavaDoc). I’ll ignore stackoverflow and the google group searches for now as they probably fall outside of the initial problem.
What we really want is a static search tool that will work with the static site generation, this allows us to leverage solutions like cloudflare to scale really well!
There are some tools like that which are pretty cool e.g. lunr.js but they don’t scale well to sites as large as ours. We have over 15,000 non-trivial unique single word keywords… Creating an index to map this takes up at least 5mb just for the index of keywords in every page. This makes client side search a bit difficult.
We’ve played with some ideas such as a split index but there doesn’t seem to be a "ready made" solution.
If you are aware of something we’re missing that will play nicely with JBake on scale let us know. If not we might have to build something of our own.