Full-service Internet Marketing & Web Development
Recent Posts

Sponsors
![]() |
Search & AutoSuggestAdrian Singer, 04-30-2007 |
Search is king. Whether you're using a help desk system, order management solution, your favorite email client or a PPC Management solution, it is very likely that the most frequent action you take throughout the day is "searching for stuff".
A customer calls in to your call center wondering about their order status. They don't remember the order number, but know the billing address.
Someone calls sales and said they received a call from your number but don't know what this is about. They don't remember who called but they know their phone number.
or maybe you're looking for all contacts at company 'Widgets ABC'.
It's all about search.
Yet surprisingly, most systems don't make it as easy to find what you're looking for.
Consider this typical search window by a popular shopping cart solution:

What we don't like about this search form is that it requires you to enter the information under specific fields. What if someone calls in and provides their email-address, how do you know if it's the 'Ship To Email' or the 'Bill to Email'? What if they don't know either and only remember their phone number?
The reason most search forms are implemented in this manner is because it is easier to code.
On the back-end, every category of information typically gets stored in its own table. So for example, an order management system would have the "customers" table, the "shipping addresses" table, "orders" table, "transactions" table and so on.
When the operator is looking to search for a specific string, if you don't know what table to search under (by forcing the operator to enter the search string under a specific field), you have to implement something like -
In other words, you'll have a long series of search queries hitting the database per every possible combination, unless you force the user to tell you - I am typing a search string which is a name in the customers table.
The SoftwareProjects Approach
Just because something is not straightforward to implement, doesn't mean it should be avoided.
We wanted to come up with a search interface that's going to be -
1. FAST (No one likes to wait minutes for an empty search result screen to come up)
2. EASY (Who knows what email-address this is. It's what the caller just gave me. So spit out everything we have for this email-address, whether it's a customer, order, transaction, comment or email campaign)
3. SCALABLE (Lots of popular systems, including Microsoft Outlook & Exchange for example, work well when you have a low number of records in the database, but practically stop working as your database grows)
--
Introducing SoftwareProjects Search & AutoSuggest. A proprietary indexing server that indexs all data (all tables) in real-time, delivering an ultra fast, user friendly single search box that will search through all of your information as you type, bringing up the information you need when you need it.

Whether you're searching for customers, orders, addresses or transactions, the autosuggest feature will bring up all matching combinations as you type them. Clicking 'Go' brings up all matching records in an instant.
We tested the system on a database with 3 million customers (with matching billing information, transactions, order data etc.) and found no degradation in search speed, thanks to a unique indexing implementation that uses binary search and memcached, bypassing all unnecessary queries to the database.
A customer calls in to your call center wondering about their order status. They don't remember the order number, but know the billing address.
Someone calls sales and said they received a call from your number but don't know what this is about. They don't remember who called but they know their phone number.
or maybe you're looking for all contacts at company 'Widgets ABC'.
It's all about search.
Yet surprisingly, most systems don't make it as easy to find what you're looking for.
Consider this typical search window by a popular shopping cart solution:

What we don't like about this search form is that it requires you to enter the information under specific fields. What if someone calls in and provides their email-address, how do you know if it's the 'Ship To Email' or the 'Bill to Email'? What if they don't know either and only remember their phone number?
The reason most search forms are implemented in this manner is because it is easier to code.
On the back-end, every category of information typically gets stored in its own table. So for example, an order management system would have the "customers" table, the "shipping addresses" table, "orders" table, "transactions" table and so on.
When the operator is looking to search for a specific string, if you don't know what table to search under (by forcing the operator to enter the search string under a specific field), you have to implement something like -
SELECT * FROM customers WHERE name like 'John%';
SELECT * FROM customers WHERE phone like 'John%';
SELECT * FROM customers WHERE emailaddress like 'John%';
SELECT * FROM transactions WHERE date like 'John%';
.
.
.
SELECT * FROM customers WHERE phone like 'John%';
SELECT * FROM customers WHERE emailaddress like 'John%';
SELECT * FROM transactions WHERE date like 'John%';
.
.
.
In other words, you'll have a long series of search queries hitting the database per every possible combination, unless you force the user to tell you - I am typing a search string which is a name in the customers table.
The SoftwareProjects Approach
Just because something is not straightforward to implement, doesn't mean it should be avoided.
We wanted to come up with a search interface that's going to be -
1. FAST (No one likes to wait minutes for an empty search result screen to come up)
2. EASY (Who knows what email-address this is. It's what the caller just gave me. So spit out everything we have for this email-address, whether it's a customer, order, transaction, comment or email campaign)
3. SCALABLE (Lots of popular systems, including Microsoft Outlook & Exchange for example, work well when you have a low number of records in the database, but practically stop working as your database grows)
--
Introducing SoftwareProjects Search & AutoSuggest. A proprietary indexing server that indexs all data (all tables) in real-time, delivering an ultra fast, user friendly single search box that will search through all of your information as you type, bringing up the information you need when you need it.

Whether you're searching for customers, orders, addresses or transactions, the autosuggest feature will bring up all matching combinations as you type them. Clicking 'Go' brings up all matching records in an instant.
We tested the system on a database with 3 million customers (with matching billing information, transactions, order data etc.) and found no degradation in search speed, thanks to a unique indexing implementation that uses binary search and memcached, bypassing all unnecessary queries to the database.
|
|
Subscribe Now to receive new posts via Email as soon as they come out.
Comments
Post your comments
