Search Design
A design-thinking approach to search applications.
A design-thinking approach to search applications.
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:
This is the set of data requirements that are absolutely necessary to realize the envisioned functionality. It’s as simple as possible and at the same time as elaborated as minimally required.
Every algorithm consists of the following:
an algorithm signature, that denotes what the input and output of the algorithm look like (in terms of the data model),
a short and high-level explanation of the inner workings of the algorithm (in terms of data model elements and operations), and,
one sentence that describes when a result is good or bad (relevance of results).
This depicts how the users interact with the solution. Every interaction is made into a visual mockup and relates to one or more of the specified algorithms. User inputs and information outputs are specified. Details such as styling of elements or their spatial placement on the page do not matter in this design. A visual language to create SIDs is attached to this guide.
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.
You have a team with knowledge scientists, information specialists, user experience (UX) designers and domain experts.
You know what problem you want to solve or what new idea you want to develop.
You have access to a data sources with information to solve the search challenge.
You have intended users of the application to help define the search challenge and test the prototype on.
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:
Retrieval concept: what type of concept is the information that fulfills the search task. For example, this could be Person.
Relevance criteria: what items are relevant and what determines their relevance? For example, two criteria might be: the director should have won at least one Academy Award, and, the more awards the director has won, the more relevant it is.
Relevant information: what information should you know about the retrieval concept in order to fulfill the search task. This can be attributes of the retrieved result or attributes of items that are somehow related to the retrieved result. For example, the name of the director and the title of the movie for which the award was won.
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.
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.
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:
The knowledge scientist delivers a Minimum Viable Data Model. The data engineer is free to choose a modelling method he sees fit to convert the prototype data model into. Refer to the first page of this document.
The information specialist delivers the Algorithm Specifications. These are descriptions of the algorithms that were designed for the prototype. Refer to the first page of this document.
The UX designer delivers the Search Interaction Design. The visual language to create SIDs attached to this guide can be used. Also refer to the first page of this document.
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.
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. |
Movie search page: