# Auto-suggest course content on search (Meilisearch-compatible)

**URL:** <https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202>\
**Category:** Development\
**Created:** [June 6, 2024, 10:50am UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202 "2024-06-06T10:50:10Z")\
**Posts on this page:** 7\
**Page:** 2

<div class="post-metadata">

**Author:** ![qasimgulzar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/qasimgulzar/32/6319_2.png) [@qasimgulzar](https://discuss.openedx.org/u/qasimgulzar)\
**Post date:** [July 25, 2024, 8:56am UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/21 "2024-07-25T08:56:18Z")

</div>

@braden Thank you for informing me. I have been working on creating a proof of concept (POC) for courseware search. You can view the changes I have made to integrate Meilisearch into the learning MFE [here](https://github.com/openedx/frontend-app-learning/compare/master...qasimgulzar:frontend-app-learning:qasim/autosuggest-courseware).

To support the above implementation, I have also created an additional abstraction layer, which you can find [here](https://github.com/qasimgulzar/django-search/tree/main/django_search_backend). It is not yet ready for review as I need to rename the package and perform some refactoring. However, I am sharing it to provide insight into the direction I am taking. Please let me know if you find it interesting or if you have any suggestions or additions.

[here](https://github.com/openedx/edx-platform/pull/35177) I have also added a content class in openedx to feed data to indexer.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/f/f4076cd0c7771a5d68a9fdfd5ff86c3b3c18cef5.png)

---

<div class="post-metadata">

**Author:** ![qasimgulzar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/qasimgulzar/32/6319_2.png) [@qasimgulzar](https://discuss.openedx.org/u/qasimgulzar)\
**Post date:** [July 29, 2024, 10:38am UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/22 "2024-07-29T10:38:17Z")

</div>

@braden I have drafted an Architectural Decision Record (ADR) for our project, which you can review [here](https://github.com/qasimgulzar/django-search/blob/main/docs/decisions/0001-meilisearch.rst). The document includes context from your previous ADR, and I have acknowledged your contributions accordingly.

Please let me know if there are any adjustments or additions you would recommend.

Thank you for your guidance and support.

---

<div class="post-metadata">

**Author:** ![braden](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/braden/32/46_2.png) [@braden](https://discuss.openedx.org/u/braden)\
**Post date:** [July 31, 2024, 9:38pm UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/23 "2024-07-31T21:38:45Z")

</div>

@qasimgulzar Do you mean [Meilisearch ADR by qasimgulzar · Pull Request #1 · qasimgulzar/openedx-search-api · GitHub](https://github.com/qasimgulzar/openedx-search-api/pull/1/files) ? That one seems identical to my previous ADR and doesn’t really explain the rationale for a new abstraction layer nor the architecture that it should have. It would be nice if you could write that up and get buy-in from folks.

---

<div class="post-metadata">

**Author:** ![qasimgulzar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/qasimgulzar/32/6319_2.png) [@qasimgulzar](https://discuss.openedx.org/u/qasimgulzar)\
**Post date:** [August 1, 2024, 9:16am UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/24 "2024-08-01T09:16:30Z")

</div>

@Braden, I apologize for the oversight. The document was missing essential information from the ADR. Thank you for bringing this to my attention. I have updated the document accordingly.

Could you please review the updated version when you have some free time? If you notice anything else that might be missing, please let me know.

> <https://github.com/qasimgulzar/openedx-search-api/blob/c717367781330d25badc77bff7853bfb300179a6/docs/decisions/0001-meilisearch.rst>

---

<div class="post-metadata">

**Author:** ![Glib\_Glugovskiy](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/glib_glugovskiy/32/1117_2.png) [@Glib\_Glugovskiy](https://discuss.openedx.org/u/Glib_Glugovskiy)\
**Post date:** [August 7, 2024, 5:14pm UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/25 "2024-08-07T17:14:41Z")

</div>

Hi all, it seems like it wasn’t mentioned before, but there is a Courseware search functionality that was added Learning MFE before Redwood:  
[Added waffle flag state for Courseware Search](https://github.com/openedx/frontend-app-learning/pull/1199)  
[Endpoint usage implementation for Courseware Search](https://github.com/openedx/frontend-app-learning/pull/1232)

It’s basically relying on edx-search API endpoints that were used for legacy Course search, and it will be really nice to reuse FE when switching to Meilisearch on backend.

I agree with Braden’s arguments, about the need to replace edx-search because of problems in its architecture. However, we might need to support both with an option to use one or another for some specific use cases, e.g., an LMS courseware search, as a solution for Sumac release.

---

<div class="post-metadata">

**Author:** ![qasimgulzar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/qasimgulzar/32/6319_2.png) [@qasimgulzar](https://discuss.openedx.org/u/qasimgulzar)\
**Post date:** [August 8, 2024, 11:50am UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/26 "2024-08-08T11:50:49Z")

</div>

Thank you, @Glib_Glugovskiy, for bringing this to our attention. I want to assure you that the Courseware search functionality is already on my radar. I am actively working on ensuring its compatibility with the new abstraction package. I anticipate sharing an update on this soon.

---

<div class="post-metadata">

**Author:** ![qasimgulzar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/qasimgulzar/32/6319_2.png) [@qasimgulzar](https://discuss.openedx.org/u/qasimgulzar)\
**Post date:** [August 8, 2024, 6:35pm UTC](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202/27 "2024-08-08T18:35:16Z")

</div>

I have initiated [this PR](https://github.com/openedx/frontend-app-learning/pull/1433) to implement the new abstraction package for the existing courseware search functionality. I believe it addresses most of the points we discussed. However, I welcome any feedback on this proposed abstraction and am open to making adjustments based on your input.

To make this PR work you are required to install [openedx-search-api](https://github.com/qasimgulzar/openedx-search-api)

[Previous page](https://discuss.openedx.org/t/auto-suggest-course-content-on-search-meilisearch-compatible/13202.md?page=1)
