Skip to content

Commit

Permalink
feat: add Meilisearch-compatible search engine
Browse files Browse the repository at this point in the history
The goal of this change is to introduce a search engine that is
compatible with the edx-search API but that uses Meilisearch instead of
Elasticsearch. That way, we can replace one by the other across
edx-platform by simply changing a single SEARCH_ENGINE django setting.

There are a couple of differences between Meilisearch and Elasticsearch:

1. Filterable attributes must be defined explicitly.
2. No support for datetime objects, which must be converted to
   timestamps (with an extra field to store the timezone).
3. No special characters allowed in the primary key values, such that we
   must hash course IDs before we can use them as primary key values.

Note that this PR does not introduce any breaking change. This is an
opt-in engine that anyone is free to use. There is some setup work for
every search feature: see the engine module documentation for more
information.

See the corresponding conversation here:
openedx/frontend-app-authoring#1334 (comment)
  • Loading branch information
regisb committed Oct 16, 2024
1 parent 8b58f95 commit 4ae5722
Show file tree
Hide file tree
Showing 3 changed files with 785 additions and 0 deletions.
Loading

0 comments on commit 4ae5722

Please sign in to comment.