I'm about to start developing a web interface to a search - it indexes a large number of items with a lot of metadata, so there is a need to enable searching in multiple ways over lots of data.

There are identified cases for searching for the following on any of the ~200 metadata fields:

  • items created/modified/otherwise stamped with specific dates
  • likewise but over date ranges
  • keywords in one or more of different text fields
  • the presence/absence of certain fields
  • full text search
  • numerical searches (including ranges)
  • And there are likely to be more when I get into it

Sticking a box at the top of the page for each of these will be irritatingly bulky; but the obvious choice (to me) – a completely text interface (like the lucene query language) – seems like it would be too difficult to use initially.

My question is: what advice do you have for building comprehensive but easy - and importantly quick - search interfaces?

My target audience is a small known team, ie. group of people who will have deep knowledge of what's been indexed and can be trained to use the system in an 'advanced' way for additional speed benefits.

  • 1
    Have you had a look at the freely available on-line version of the 2009 book "Search user interfaces" ( searchuserinterfaces.com ). It was written by an academic leader in the field, and may help you get started.
    – CJF
    Apr 15, 2013 at 9:07
  • Great suggestion - I shall
    – JP.
    Apr 15, 2013 at 10:05

1 Answer 1


You are facing a problem that Google has already solved and extensively tested, so copy them. In essence it is:

  1. Use a query language that is appropriate for your audience - Lucene is a decent choice for this. Query languages are faster for advanced users to use, and is what most search engines allow.

  2. Offer an "Advanced search" link/tab/button that shows a more verbose form that is focused on being easier to use, but not as clean. Google's Advanced search is again a good example. However I would not follow Google in the the placement of their "Advanced search" link - which is at the bottom of each screen. Rather place your "Advanced search" link near your search bar.
    enter image description here

  3. When someone does an advanced search, translate the search to the query language and perform a search. This is also a good way to educate your users on the syntax of your query language. enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.