Search Design

A design-thinking approach to search applications.

What's a search design?

A search design is a specification of a search application. It's the starting place for the design and development of a production-ready application, as well as a reference document to ease communication about the application.

It consists of:

Guide: create a search design

Good search is user-centered, that’s why we lean on the Design Thinking approach to create a search design. This starts with understanding the search challenge that you want to solve. After that you explore solutions, test the results on users and materialize this into a search design specification.

0. Prerequisites

1. Understand the needs of your users

Approach your intended users and interview them about the problem you want to solve. What does the user want to accomplish? What is the conceptual domain model of the user? Which types of concepts are needed to fulfill this task? Write down each user research observation.

After the interviews, come together with the team and share your observations. Group related observations together into search tasks. A search task is an activity the user performs to gather information using information systems. For example, the user might want to find directors that have won an Academy Award.

Now, elaborate on each search task by defining:

Try to base your elaborations on the observations you made during the interviews. You can make this easier for yourself by writing the observations on post-its and moving them around during the elaboration phase.

Note that these steps match the ‘Empathize’ and ‘Define’ phases of the Design Thinking approach, with which you might be familiar.

2. Prototyping solutions

Next up you will think of solutions to the search tasks and prototype them. A prototype is a very minimal but tangible demonstration of a solution. Prototyping is a hands-on activity that stimulates collaborative work and creative thinking. It also allows the solution to be tested on users because they can interact with the prototype. If you create a fully-functional prototype, it also shows the feasibility of an idea. This creates a valuable feedback loop.

Get together with the team and decide which of the elaborated search tasks you’re going to work on. Do a brainstorm to gather ideas about what a solution might look like. Decide which ideas are worth prototyping.

Next up, decide on the fidelity of your prototype. Are you creating a paper mockup, a fully-functional prototype application or something in between?

Start building a prototype for the ideas you gathered. The knowledge scientist develops a model containing the data that is relevant for the defined search tasks. The information specialist designs algorithms that retrieve data from the model to resolve the search tasks. The UX designer creates an interface that allows users to interact with these algorithms and resolve the search tasks on demand.

When your prototype is done, turn to the intended users again. Let them test the prototype and collect their feedback.

Decide after every prototype-and-test iteration whether to do another iteration (either keeping the prototype or starting over again). Note that this brainstorming, prototyping, and testing matches the ‘Ideate’, ‘Prototype’ and ‘Test’ phases of the Design Thinking approach, with which you might be familiar.

3. Distilling the search design

You now find yourself with a prototype and a bunch of user feedback. From this, we will distill the search design. Think of the search design specification as an imprint or description of your prototype.

Every discipline in the team has its responsibility to deliver one part of the search design:

When delivering the search design, you may choose to include the user research observations, elaborated search tasks and prototype to substantiate and demonstrate the search design.

Example Search Design

Minimum Viable Data Model

Minimum Viable Data Model

Algorithm Specifications

Signature Description Relevance

/search/p/query/{STRING} -> Persons

Ranks all persons using BM25 scores of person name with the query string.

Only show persons with names that are roughly equal to the query.

Movies -> /genre -> Genre

Lists all genres occurring in the inputted movies.

All genres that occur with the movies are relevant.

Search Interaction Design

Movie search page:

Search Interaction Design