It is easy to become blasé about finding things – search engines have been helping us comb through the vast space of the Internet for many years, and they do so with ease and elegance, returning useful results. We’ve come to expect this in most places where we are looking for something – especially as it relates to software, but with the advent of mobile, really we look for it wherever we are: finding a book for our child, seeking out a restaurant, getting directions when we are lost.
It’s always surprising when someone brings us a software project and the answer is finding something – we have Search for that, don’t we? Not always.
The Challenge: Build Search that Integrates with LDAP
In our recent work with a large corporate client we found that not only did they not have search, the tools available for searching – including Google Search Appliance Add-Ons, didn’t solve the business problems. Our client needed the ability to pull together an assortment of tools, use each one effectively, and then integrate to create something that was greater than the sum of its parts.
This client had around 15,000 employees world-wide. They needed a tool or set of tools to find people in different offices, different business lines, and different job functions making it simpler to communicate and do business.
At the heart of the issue was information about people, stored in LDAP. We used PHP and the Laravel framework to build a site that allowed people to access and update this information – including custom LDAP attributes that only our application would see and use.
Still, the big question remained: how to search through the information and return results quickly and easily? The client had a Google Search Appliance which was great for doing what Google does, indexing and searching documents and web pages. But when it came to the LDAP directory we found that the results left something to be desired. It was very good at certain kinds of searching – finding all the people in a particular office for instance, but less strong when it needed to find things in multiple LDAP fields or when you were searching for people based on nicknames.
Finding Creative Solutions to Tough Problems
The solution? Build a custom search algorithm and plug the PHP website directly into LDAP using basic features of PHP 5. Then once we had our algorithm returning results that were targeted in specific ways, we found a way to combine the two result sets to deliver robust people searching capability.
This focus on leveraging tools and building custom parts when needed provided a strong solution to the client’s business and allowed them to deliver a framework that their company is excited about.
As they’ve put it into the hands of real users they’ve discovered some interesting use cases that have allowed us to continue to build on the custom search. We’ve added features to display an individual’s direct reports, find managers, and find assistants for busy executives.
These technical solutions along with unique results display, responsive design to handle mobile, and robust result paging have helped create a site that is friendly and fast.
The project is being used by people across the client’s company to find individuals and help them get business done.