# Improve the course search functionality on the Studio homepage

**URL:** <https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126>\
**Category:** Feature Ideas\
**Created:** [January 8, 2026, 9:44am UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126 "2026-01-08T09:44:23Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anh\_Vu\_Nguy\_n](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/anh_vu_nguy_n/32/1740_2.png) [@Anh\_Vu\_Nguy\_n](https://discuss.openedx.org/u/Anh_Vu_Nguy_n)\
**Post date:** [January 8, 2026, 9:44am UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/1 "2026-01-08T09:44:23Z")

</div>

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

The search box on the Studio homepage only finds courses whose names contain the search keyword. If there is any mismatch, even if it’s very small, the course will not be returned.

This is because the search API uses SQL queries to search the MySQL database, which is not flexible (or suitable) enough for text-based searches.

This problem arises in large instances, where an author (or staff) might have many courses and they want a better search/filtering mechanism.

Suggested solution:

We already have a search engine (meilisearch/elasticsearch) and the course data is already indexed; we should leverage this search engine for this type of task.

We just need to index an additional block `block_type = ‘course’` and optionally add a field for `course_run`.

---

<div class="post-metadata">

**Author:** ![sarina](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/sarina/32/2308_2.png) [@sarina](https://discuss.openedx.org/u/sarina)\
**Post date:** [January 12, 2026, 10:33pm UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/2 "2026-01-12T22:33:13Z")

</div>

@Anh_Vu_Nguy_n which Open edX version are you running?

---

<div class="post-metadata">

**Author:** ![Anh\_Vu\_Nguy\_n](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/anh_vu_nguy_n/32/1740_2.png) [@Anh\_Vu\_Nguy\_n](https://discuss.openedx.org/u/Anh_Vu_Nguy_n)\
**Post date:** [January 13, 2026, 6:33am UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/3 "2026-01-13T06:33:57Z")

</div>

The latest Teak release (tutor v20.05)

---

<div class="post-metadata">

**Author:** ![joel.edwards](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/joel.edwards/32/3193_2.png) [@joel.edwards](https://discuss.openedx.org/u/joel.edwards)\
**Post date:** [January 13, 2026, 9:59am UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/4 "2026-01-13T09:59:44Z")

</div>

As far as I can tell in my instance at least, the Search box on v20.0.5 still uses the legacy search methods, there was a [beta search introduced in Redwood](https://docs.openedx.org/en/latest/community/release_notes/redwood/course_search.html) that uses the Meilisearch features, which you can access using the magnifying glass icon at the upper right of the screen:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/5/55b090e1b3b70ec852a8b2adb917b16280c43070.png)  
in the event you get no results, try reindexing your studio: `tutor local run cms ./manage.py cms reindex_studio --experimental`  
Maybe give that a try and see if it yields more reliable results.

As far as I can see it’s still not particularly forgiving with typos, but it looks like meilisearch _can_ support typo tolerance, but I didn’t notice any of this in the codebase, so might not be implemented, maybe a useful feature for devs to test

> **[Typo tolerance settings - Meilisearch Documentation](https://www.meilisearch.com/docs/learn/relevancy/typo_tolerance_settings)**
>
> This article describes each of the typo tolerance settings.

> **[Typo tolerance calculations - Meilisearch Documentation](https://www.meilisearch.com/docs/learn/relevancy/typo_tolerance_calculations)**
>
> Typo tolerance helps users find relevant results even when their search queries contain spelling mistakes or typos.

---

<div class="post-metadata">

**Author:** ![Anh\_Vu\_Nguy\_n](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/anh_vu_nguy_n/32/1740_2.png) [@Anh\_Vu\_Nguy\_n](https://discuss.openedx.org/u/Anh_Vu_Nguy_n)\
**Post date:** [January 13, 2026, 3:17pm UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/5 "2026-01-13T15:17:59Z")

</div>

Thank you for the response, but that’s not the search box I was talking about; my post was about the search box right below the Courses tab (see post image). Although the search box you mentioned (the search box on the navigation bar) is the reason I suggested we use the same index to improve the search experience.

---

<div class="post-metadata">

**Author:** ![sarina](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/sarina/32/2308_2.png) [@sarina](https://discuss.openedx.org/u/sarina)\
**Post date:** [January 13, 2026, 3:28pm UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/6 "2026-01-13T15:28:51Z")

</div>

Pinging @braden @dave for comment

---

<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:** [January 13, 2026, 5:29pm UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/7 "2026-01-13T17:29:47Z")

</div>

We _could_ replace the course search features on the Studio home page with a search based on Meilisearch (and the libraries search as well). That would indeed provide better typo tolerance, fuzzy searches, etc. But there is a downside which is that Meilisearch powered features require Meilisearch to be running and its index up to date. From the initial adoption of elasticsearch until the present day usage of Meilisearch, we have yet to get to the point where all installations of Open edX have a stable search engine with an up-to-date index. We still need a proper solution for [handling index migrations](https://github.com/openedx/edx-platform/issues/36868), replacing edx-search with a new abstraction layer that supports Meilisearch and Typesense, and providing better visibility/tooling/recovery for indexing.

So, for now, I’m not in favor of changing the Studio home to be search-index powered, because viewing the list of courses is a core feature that all course authors rely on daily, and we can’t accept it being unstable or incomplete or unavailable on some instances. But once we improve the way the platform integrates with search engines, yes, that would be a great improvement.

CC @dave

---

<div class="post-metadata">

**Author:** ![Anh\_Vu\_Nguy\_n](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/anh_vu_nguy_n/32/1740_2.png) [@Anh\_Vu\_Nguy\_n](https://discuss.openedx.org/u/Anh_Vu_Nguy_n)\
**Post date:** [January 21, 2026, 9:24am UTC](https://discuss.openedx.org/t/improve-the-course-search-functionality-on-the-studio-homepage/18126/8 "2026-01-21T09:24:17Z")

</div>

I think for this specific problem, we only need metadata about the courses, such as display\_name, org, run, etc., and not the content of the courses, i.e., the content of the blocks. This way, the data needed for this problem can be indexed very quickly and more up-to-date.

Administrators can choose to index other content (the content of the blocks) if they want, because this process takes a very long time to complete, and even when the server is running, indexing the course block content consumes a lot of resources and puts other important tasks in the queue, all for the sake of searching the entire course, which is really not important.
