Broken is relative. For most searches it is accurate. We error on returning too many results and part of the problem is how we index and use root words etc. When you have customers with installations of 1000+ agents and you can have hundreds of thousands of tickets and they can search almost any attribute of a ticket, live chat, or call log etc.. a lot effort is put into making sure the results are returned almost immediately.
We have ideas on how to better approach this in upcoming versions. For example, were going to take into account the size of the installation and amount of data and change some algorithms dynamically. Right now, if responses of a ticket are modified, only the original response was indexed. So if a word was in a response and then removed before it was sent, it would look like a false result in search results. Re-indexing all drafts and edited responses can be somewhat taxing in large installations. So, there is a need to re-evaluate but the solution isn't simple.
There are a couple things that we are looking at for a minor but a majority of our changes will be made in the next major.