...
index name | what is it? | indexer | searcher |
---|---|---|---|
courseware_content | course content | CoursewareSearchIndexer in platform/cms | /search and perform_search in edx-search |
library_index | library content, similar to courseware_content | LibrarySearchIndexer in platform/cms | LibraryToolsService in platform/xmodule |
course_info | course about info, maybe this object | CourseAboutSearchIndexer in platform/cms | course_discovery_search and its endpoint in edx-search |
content_library_index | library metadata | ContentLibraryIndexer in platform/core/content libraries app | the same indexer, via its parent class get function which is exposed via an API |
content_library_block_index | library content | LibraryBlockIndexer in platform/core/content libaries libraries app | the same indexer, via its parent class get function which is exposed via an API |
course_team_index | team info but not members | CourseTeamIndexer in platform/lms teams app | Team list view in the same app |
...
Doing their own searching means that these indexes can’t use the extension points, but it also means they don’t have to because the filters and results are customized to their particular use case.
One twist on calling this format a best practice: it’s not enabled by default or on edx.org, so unless it has other users it could be completely broken and we wouldn’t know.
So Many Settings
There are minor settings for specific search tweaks I’m going to skip to keep these tables compact.
Most of these settings have different values for test which are not listed here.
edx-search settings
Setting | What is it? | Set to |
---|---|---|
SEARCH_ENGINE | which engine class to use | search.elastic.ElasticSearchEngine via cms & lms production.py |
COURSEWARE_CONTENT_INDEX_NAME, COURSEWARE_INFO_INDEX_NAME | index names | left at code default, could not be changed since the indexer does not know the setting |
ELASTIC_SEARCH_*, ELASTIC_FIELD_MAPPINGS | various elasticsearch specific settings | generally set to use version 7 values |
SEARCH_RESULT_PROCESSOR, SEARCH_INITIALIZER, SEARCH_FILTER_GENERATOR | expansion points, see above | set to courseware search, LMS specific values in common.py |
edx-platform settings
Setting | What is it? | Set to |
---|---|---|
ENABLE_COURSEWARE_INDEX | index course content at all | false in common.py true in devstack.py |
ENABLE_LIBRARY_INDEX | same for libraries | false in common.py |
ENABLE_CONTENT_LIBRARY_INDEX | governs both content_library_index and content_library_block_index | false in common.py |
ENABLE_TEAMS | index teams content, this is the general teams feature setting | true in common.py |