tags:

views:

313

answers:

16

In a typical business application it is quite common to have forms that are used for searching.

Some basic features are:

  • A pane that contains the search criteria
  • A grid to display the results
  • Sorting on the grid
  • A detail page that opens when an item is selected in the results grid

What other features would you expect in a business application's search functionality?

+1  A: 

Printing, export.

TomTom
+2  A: 

Aggregate summary info, like total(s), count(s) or percentages.

One or more menus, like right click context for the grid, a ribbon or menu on top.

Berryl
+5  A: 

How about the ability to save search criteria, in order to easily re-run a search later. Or, the ability to easily, cleanly, print the list of results.

Matt Blaine
Well if I'm going to do that, I might as well also give the ability to email the search criteria.
Jonathan Allen
@JonathanAllen Email the criteria? I said *save* the criteria. And print the results, not print the criteria.
Matt Blaine
@JonathanAllen Something like this: http://www.mydigitallife.info/2010/02/07/how-to-save-frequent-searches-in-windows-7/
Matt Blaine
+3  A: 

If search refining is allowed (given a search result, limited future searches to the current results), you may also want to add a breadcrumb system, so that the user can see the sequence of refinements that lead you to the current result-set -- and by clicking on a breadcrumb, return to a previous refinement stage.

tucuxi
That's a nice touch.
Jonathan Allen
+1  A: 

A grid to display the results

Watch out not to display results a user is not authorized to see (roles / permissions / access rights).

A detail page that opens when an item is selected in the results grid

In case a user attempts to circumvent the search page links and enter some document directly, again, check out for permissions.

Developer Art
+1  A: 

Validation, validation, validation.

It should be very hard, near impossible, for me to run a query that makes no sense. ie, start date occurring after an end date.

mmsmatt
+2  A: 

Your list for the UI elements is kinda good. Export, print (asking them whether it is really necessary to print this?), category/tag and language selection is worth to consider. Smart and working pagination (don't forget ordering).

Please do not force a search to open in a new (or even worse, always in the same window). Links of search results should be copy-pastable (always use GET),

But it really matters to have a functional (i.e. a really good) algorithm. Mostly I google company websites, because their search engine is, cough, awwwwkward. Looking for a feature chart, technical spec, pricing etc. one is not interested in press releases and vica-versa.

Search engine providers offer integration into company websites.

sibidiba
Is pagination actually a fundemental feature or is it just something needed for working around the limitations of a browser?
Jonathan Allen
How would you handle links to search results in a non-web based product?
Jonathan Allen
Pagination can be seen as splitting up information. You must somehow do it, you can't present 10000 hits at once. Whether to use a GUI scroll bar, tabs or pagination, is influenced by the number of expected hits, server load, type of display markup/device.In GUI you have much more components to utilize with ease. But browsers have an awesome navigation: simplicity makes things more consistent and always available (history, back/forward button, bookmarks, spell checker, and quit!)Never forget security: SQL injection, session hijack, validation, know what *not* to include in search results.
sibidiba
+2  A: 

Use Auto-complete wherever possible on your text input fields.

If using selects or combo boxes with related information try and use chain selects to organise the information.

Where results depend on location try and serve relevant results.

Also remember to keep the search form as simple as possible even down to one text field. To refine the search you can have an alternate form as an "Advanced Search interface".

Steve Obbayi
A: 

One thing you can do is have a drop down of most common searches in plain english. e.g. "High value sales in New York in last 5 days". This is the equivalent of user selecting an amount, the city, date ranges etc. done conveniently for them.

Another thing is to have multiple search criteria tabs based on perspective of the user. Like "sales search", "reporting search", "admin search" etc.

ALso consider limiting the number of entries retrieved in the search and allow users to do more narrow searches. This depends on the business needs however.

Pratik
A: 

The most commonly used search option listed first and in a prominent location.

Broam
+11  A: 

Maybe it's a bit trite but there is some sense in this picture:

alt text

Do it as it shown at the second example, not as at the 3rd one.

There is a well known extreme programming principle - YAGNI. I think it's absolutely appliabe to almost any problem. You always can add something new if it's necessary, but it's much more difficult to remove something what is already exist because someone already uses it even if it's wrong.

Roman
Certainly cute, but if my users want all the orders in the state of California they don't want to also get all companies with CA in their name. Google can get away with it because they just need to return a good answer, not the best answer.
Jonathan Allen
@Jonathan Allen: don't say then that we didn't warn you)
Roman
Oh don't get me wrong, I think that's great for a generic "search for a customer or company by name, address, or phone number" box. But that's not the problem I'm trying to solve here.
Jonathan Allen
A: 

I think your requirements are good. Take a cue from Google. Google got it right. One text box where you type whatever you want, and your engine spits out the answers. Most folks will try this, and if the answers are good enough, then that is what they will use. In the back-end, you'll probably want to flatten all of the data into a big honkin' table and then index it or use a SQL query with "LIKE" in it.

However, you will probably want to allow the user to refine the search. For this, have a link to "Advanced Search" and use a form there to specify filter criteria. This lets the user zero in on the results if basic search is not good enough. For the results on th is page, you will certainly want to have sorting on key fields, but do it after you have produced the initial result set.

Jay Godse
A: 

It depends on the content that you are searching for.. make it relevant :) Search always look easy but can be incredibly difficult to get right.

Chris
+3  A: 

Faceted search:

alt text

This is displayed in the area in the right ellipse. There are filters and the engine shows the number of results that will remain after aplying the filter. This is very useful and can be done without pain in some search engines, such as Apache Solr. Of course, implement this only if filters make sense in your task.

nacmartin
+1  A: 

Export a numerical dataset (even if it only has one numeric column - so just make it so by default) to CSV for import into Excel (people love this function, even if only 1% of users seem to use it with any regularity. Just ask yourself when's the last time you highlighted something for copy-n-paste. Would it have been easier to open a CSV?

Refinable searches (think Google's use of site: -). People who use the search utility a lot will appreciate this. People who don't won't know it's not there.

The ability to choose to display 1 records, 5 records, 100 records, 1000 records, etc. "Paging" I believe is what we most commonly call it ;).

You mentioned sortable grids. Somebody else mentioned auto-sum or auto-count. Those are good if (once again) you have largely numeric data. But those are almost report-oriented functions.

Hope this helps.

drachenstern
A: 

Not mentioned yet, but very important I think - a search that actually works. This item is often neglected and makes the rest a bit moot.

Paddy