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 17, 2024
1 parent ff17750 commit 5ab7b22
Show file tree
Hide file tree
Showing 2 changed files with 798 additions and 0 deletions.
Loading

0 comments on commit 5ab7b22

Please sign in to comment.