/multi-search
endpoint. A federated search is a multi-search that returns results from multiple queries in a single list.
In this tutorial you will see how to create separate indexes containing different types of data from a CRM application. You will then perform a query searching all these indexes at the same time to obtain a single list of results.
Requirements
- A running Meilisearch project
- A command-line console
Create three indexes
Download the following datasets:crm-chats.json
, crm-profiles.json
, and crm-tickets.json
containing data from a fictional CRM application.
Add the datasets to Meilisearch and create three separate indexes, profiles
, chats
, and tickets
:
Perform a federated search
When you are looking for Natasha Nguyen’s email address in your CRM application, you may not know whether you will find it in a chat log, among the existing customer profiles, or in a recent support ticket. In this situation, you can use federated search to search across all possible sources and receive a single list of results. Use the/multi-search
endpoint with the federation
parameter to query the three indexes simultaneously:
Promote results from a specific index
Since this is a CRM application, users have profiles with their preferred contact information. If you want to search for Riccardo Rotondo’s preferred email, you can boost documents in theprofiles
index.
Use the weight
property of the federation
parameter to boost results coming from a specific query:
profile
ranking higher than documents from other queries:
Conclusion
You have created three indexes, then performed a federated multi-index search to receive all results in a single list. You then usedweight
to boost results from the index most likely to contain the information you wanted.