Skip to main content

Generating a user profile

Search personalization requires a profile of the user performing the search. Meilisearch does not yet provide automated generation of user profiles. You’ll need to dynamically generate a user profile for each search request. This should summarize relevant traits, such as:
  • Category preferences, like brand or size
  • Price sensitivity, like budget-conscious
  • Possible use cases, such as fitness and sport
  • Other assorted information, such as general interests or location
The re-ranking model only processes positive signals. It cannot interpret negative statements like “dislikes blue” or “is not interested in luxury brands”. Always use affirmatively stated preferences instead: “likes the color red”, “prefers cheaper brands”. Once search personalization is active and you have a pipeline in place to generate user profiles, you are ready to perform personalized searches. Submit a search query and include the personalize search parameter. personalize must be an object with a single field, userContext. Use the profile you generated in the previous step as the value for userContext:
curl \
  -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "q": "wireless keyboard",
    "personalize": {
      "userContext": "The user prefers compact mechanical keyboards from Keychron or Logitech, with a mid-range budget and quiet keys for remote work."
    }
  }'

Next steps

Generate user context

Build dynamic user profiles for more relevant personalized results.

Personalize e-commerce search

Apply search personalization to an e-commerce product catalog.

Personalization overview

Learn how search personalization works and when to use it.