In this week's Engineering post, I wanted to give an insight into some search improvements you might have already discovered in the Decision [D4H] Application, as well as our weekly release notes.
At [D4H] we are rarely content to settle when it comes to the features we provide, much like the new communications module we released earlier this year we are constantly looking improve on the features we offer.
The latest feature we have improved is the quick search, a very simple, but powerful feature in our system. If you are unfamiliar with quick search to date, it is in the top right corner of the desktop user interface, or top of the dashboard view when viewing on mobile, and allows you to search equipment, members, activities and documents all from one place.
From listening to our customers, we realised that this could be even more powerful, by making more meta-data 'searchable' in relation to items, such as searching for equipment by serial number, manufacturer or model. We also wanted it to be more flexible, so from putting in different pieces of information about an entity you could narrow down a search instead of a naive search on the title of an item.
Combining these two improvements posed some interesting technical issues. The obvious problems associated with performing a more complex search, and with making more data searchable are the performance hits incurred, something we felt would be unacceptable as our users have become accustomed to our search features' quick response.
After evaluating multiple search engine alternatives such as Sphinx, Lucene and Elasticsearch, we found through some clever optimizations in how we store meta-data, and in how we query the data we could implement solution through PHP and MySQL alone, availing of MySQL's full-text feature. Through this we managed to meet our goals of a more flexible search feature, that could also search meta-data relating to items and actually reduced time taken to perform a database query to ~25% of the time taken before.
We are quite pleased with the results, and hope you are too. If you have any questions, a great place for them is on our community forums.
If this kind of work interests you, we have a spot open on our engineering team to join our crew in the lighthouse - yes, we work in a lighthouse - you can read about the role here.
Release Notes (Week 3rd - 7th March):
- New improvements to quick search, increased speed, search entity meta-data.
- Added setting to hide member qualifications from other team members.
- New, more flexible permissions system added to organisation accounts.
- Fixed filtering completed repairs by location.
John Brett, [D4H] Senior Engineer.