Skip to main content
Ctrl+K
Logo image
  • Installing, Configuring, and Running the Open edX Platform
  • 1. General Information
    • 1.1. Read Me
    • 1.2. Getting Help
    • 1.3. Other edX Resources
    • 1.4. edX Browser Support
  • 2. Open edX Platform Releases
    • 2.1. Open edX Olive Release
    • 2.2. Open edX Nutmeg Release
    • 2.3. Open edX Maple Release
    • 2.4. Open edX Lilac Release
    • 2.5. Open edX Koa Release
    • 2.6. Open edX Juniper Release
    • 2.7. Open edX Ironwood Release
    • 2.8. Open edX Hawthorn Release
    • 2.9. Open edX Ginkgo Release
    • 2.10. Open edX Ficus Release
    • 2.11. Open edX Eucalyptus Release
    • 2.12. Open edX Dogwood Release
    • 2.13. Open edX Cypress Release
    • 2.14. Open edX Birch Release
  • 3. Installing and Starting the Open edX Platform
    • 3.2.1. Open edX Tutor Installation
    • 3.2.2. Lilac Open edX Native Installation
    • 3.2.3. Devstack
  • 4. Configuring the Open edX Platform
    • 4.1. Guidelines for Updating the Open edX Platform
    • 4.2. Configuring Open edX Sites
      • 4.2.1. Create an Open edX Site
      • 4.2.2. Configuring Sites Independently
    • 4.3. Changing the Appearance of Open edX Sites
      • 4.3.1. Changing Themes for an Open edX Site
        • 4.3.1.1. Themes Overview
        • 4.3.1.2. Root Directories for Theme Files
        • 4.3.1.3. Creating a Theme
        • 4.3.1.4. Enabling and Applying Themes
        • 4.3.1.5. Compiling a Theme
      • 4.3.2. Styling Drag and Drop Problems
    • 4.4. Adding Custom Fields to the Registration Page
    • 4.5. Specifying Allowed Registration Email Patterns
    • 4.6. Adding the CourseTalk Widget
    • 4.7. Enabling Open edX Search
    • 4.8. Enabling Badging
    • 4.9. Enabling Course Certificates
    • 4.10. Enabling Self-Paced Courses
    • 4.11. Enabling Public Course Content
    • 4.12. Enabling Custom Courses
    • 4.13. Enabling Custom Course Settings
    • 4.14. Enabling Discussion Notifications
    • 4.15. Enabling Entrance Exams
    • 4.16. Configuring Open Response Assessments
      • 4.16.1. Configuring ORA2 to Upload Files to Alternative Storage Systems
      • 4.16.2. Prohibiting Submission of Specified File Types
    • 4.17. Enabling Course Prerequisites
    • 4.18. Enabling Course and Video Licensing
    • 4.19. Configuring Transcript Behavior
    • 4.20. Configuring an edX Instance as an LTI Tool Provider
      • 4.20.1. Enable LTI Provider Functionality
      • 4.20.2. Configuring Credentials for a Tool Consumer
      • 4.20.3. Define an Interval for Grade Aggregation (Optional)
      • 4.20.4. Options for LTI Authentication and User Provisioning
      • 4.20.5. Configuring Open edX User Authentication for LTI
    • 4.21. Enabling Social Sharing of Courses and Certificates
    • 4.22. Configuring a Password Policy
    • 4.23. Enabling Third Party Authentication
      • 4.23.1. Supported Identity Providers
      • 4.23.2. SSO Behavior
      • 4.23.3. Integrating Third Party Authentication in Open edX
        • 4.23.3.2.1. Integrating with an OAuth2 Identity Provider
        • 4.23.3.2.2. Integrating with a SAML Identity Provider
      • 4.23.4. Configuring your Open edX Site as a SAML Service Provider
      • 4.23.5. Advanced Third Party Authentication Features
      • 4.23.6. Eliminating PII From Third-Party Authentication
      • 4.23.7. Third Party Auth ID Mapping API
    • 4.24. Enabling Timed Exams
    • 4.25. Enabling the User Retirement Feature
      • 4.25.1. Implementation Overview
      • 4.25.2. Setting Up User Retirement in the LMS
      • 4.25.3. Setting Up the User Retirement Driver Scripts
      • 4.25.4. Handling Special Cases
    • 4.26. Setting Up the YouTube API Key
    • 4.27. Installing an XBlock
    • 4.28. Enabling a CDN for Course Assets
    • 4.29. Enabling the Weekly Learning Goals Feature
    • 4.30. Retrieving Extended Profile Metadata
  • 5. Adding edX Insights for Course Teams
    • 5.1. Options for Installing edX Insights
    • 5.2. Using Elastic MapReduce on AWS
  • 6. Adding E-Commerce to the Open edX Platform
    • 6.1. Install and Start the E-Commerce Service
    • 6.2. Comprehensive Theming
    • 6.3. Manage Static Assets
    • 6.4. Create E-Commerce Products
      • 6.4.1. Creating Products Overview
      • 6.4.2. Create Course Seats
      • 6.4.3. Create and Manage Coupons
      • 6.4.4. Enable and Create Enrollment Codes
      • 6.4.5. About Programs
      • 6.4.6. Create Program Offers
    • 6.5. Enable the E-Commerce Service Receipt Page
    • 6.6. Manage Orders
    • 6.7. Test Your E-Commerce Application
    • 6.8. Additional E-Commerce Features
      • 6.8.1. Sending Notifications
      • 6.8.2. Changing Payment Processors
      • 6.8.3. Apple Pay
      • 6.8.4. Tracking Data
      • 6.8.5. Gating E-Commerce Service Features
      • 6.8.6. Maintaining the E-Commerce Service
    • 6.9. Internationalization
  • 7. Setting Up the Open edX Mobile Applications
  • 8. Index of Open edX Feature Flags
  • 9. Glossary
  • Repository
  • Suggest edit
  • Open issue
  • .rst

Enabling Open edX Search

Contents

  • 4.7.1. Overview
  • 4.7.2. Search Engines and edX Search
    • 4.7.2.1. MockSearchEngine
    • 4.7.2.2. ElasticSearchEngine
  • 4.7.3. EdX Search Requirements
  • 4.7.4. Install edX Search
  • 4.7.5. Enable Indexing
    • 4.7.5.1. Which Data Gets Indexed
  • 4.7.6. Supported Flags
    • 4.7.6.1. CMS
    • 4.7.6.2. LMS

4.7. Enabling Open edX Search#

You can add a search feature to your Open edX site so that prospective learners can find courses more easily. When a learner searches for a key word or words, the search feature returns a list of the courses that are currently open for enrollment and that match the entered key words.

This section describes how to enable search in your instance of Open edX.

  • Overview

  • Search Engines and edX Search

  • EdX Search Requirements

  • Install edX Search

  • Enable Indexing

  • Supported Flags

4.7.1. Overview#

EdX Search is a Django application that provides access to search services from within edX Platform applications. Searching is accomplished by creating an index of documents, and then searching within that index for matching information.

When you install the Open edX devstack, edX search is enabled by default. You must enable this feature to use it with Open edX fullstack.

Note

Before proceeding, review Guidelines for Updating the Open edX Platform.

4.7.2. Search Engines and edX Search#

By default, edX Search uses MockSearchEngine for testing and ElasticSearch Engine for production. You can configure edX Search to use a different search engine.

4.7.2.1. MockSearchEngine#

MockSearchEngine is a simple implementation using a JSON file for index storage. It has no specific requirements, but it does not scale well and should only be used for testing.

4.7.2.2. ElasticSearchEngine#

ElasticSearchEngine is a ElasticSearch back-end implementation. It uses same ElasticSearch version that is already part of Open edX Platform. The current version is v1.5.2. The ElasticSearch Python client is the latest 1.x version.

4.7.3. EdX Search Requirements#

EdX Search requires the following applications.

  • Django (edX Platform version)

  • pyMongo (edX Platform version)

  • pytz

  • Django elasticsearch (0.4.5)

4.7.4. Install edX Search#

EdX Search is included in Open edX Platform GitHub requirements and is installed automatically when you install the Open edX Platform.

4.7.5. Enable Indexing#

You enable course indexing by setting the ENABLE_COURSEWARE_INDEX flag.

You enable library indexing by setting the ENABLE_LIBRARY_INDEX flag.

Indexing is done from Studio as a Celery task. Every publish event triggers the reindex procedure.

You can also reindex the course manually through the Reindex button in the Course Overview page.

Note

The search feature only returns results for courses that are currently open for enrollment. Course teams can set the enrollment start and end dates for their courses in Studio. For more information, see Guidelines for Start and End Dates in the Building and Running an Open edX Course guide.

4.7.5.1. Which Data Gets Indexed#

Which data gets indexed is determined by the module index_dictionary() function implementation. Modules supporting this method are Sequence, Vertical, Video, and HTML Block. You can add support to any module type.

Course metadata, including the name, description, and start and end dates are also indexed.

4.7.6. Supported Flags#

The following flags are supported in the CMS and LMS applications.

4.7.6.1. CMS#

  • ENABLE_COURSEWARE_INDEX: Enables and disables courseware content and course info indexing.

  • ENABLE_LIBRARY_INDEX: Enables and disables library content indexing.

  • SEARCH_ENGINE: Sets the search engine to use. There are two predefined values.

    • "search.elastic.ElasticSearchEngine"

    • "search.tests.mock_search_engine.MockSearchEngine"

  • ELASTIC_FIELD_MAPPINGS: Sets any additional field mappings that elastic search should be aware of. For example, the following code includes the course start date.

    ELASTIC_FIELD_MAPPINGS = {
      "start_date": {
        "type": "date"
      }
    }
    

4.7.6.2. LMS#

  • ENABLE_COURSEWARE_SEARCH: Enables and disables Courseware Search feature (in course searching).

  • ENABLE_DASHBOARD_SEARCH: Enables and disables Dashboard Search feature (in enrolled courses searching).

  • ENABLE_COURSE_DISCOVERY: Enables and disables Course Discovery feature (over courses searching and facet filtering).

  • COURSE_DISCOVERY_FILTERS: If provided, overrides the list of facets that are used in the Course Discovery feature to filter the results. By default, all facets will be displayed. The list of available facets includes:

    • Course organization: "org"

    • Course type: "modes"

    • Course language: "language"

  • SEARCH_ENGINE: Sets the search engine to use. The following values are predefined.

    • "search.elastic.ElasticSearchEngine"

    • "search.tests.mock_search_engine.MockSearchEngine"

  • SEARCH_INITIALIZER: Used to set custom SearchInitializer. SearchInitializer provides an extension to achieve masquerade and other presearch environmental settings.

    • default: SearchInitializer

    • LMS implementation: lms.lib.courseware_search.lms_search_initializer.LmsSearchInitializer

  • SEARCH_RESULT_PROCESSOR: Used to set custom SearchResultProcessor. SearchResultProcessor does post processing and data manipulation on a result set returned by SearchEngine.

    • default: SearchResultProcessor

    • LMS implementation: lms.lib.courseware_search.lms_result_processor.LmsSearchResultProcessor

  • SEARCH_FILTER_GENERATOR: Used to set custom SearchFilterGenerator. SearchFilterGenerator sets filters defined by current active user. Basic implementation sets only course start date filter.

    • default: SearchFilterGenerator

    • LMS implementation: lms.lib.courseware_search.lms_filter_generator.LmsSearchFilterGenerator

previous

4.6. Adding the CourseTalk Widget

next

4.8. Enabling Badging

Contents
  • 4.7.1. Overview
  • 4.7.2. Search Engines and edX Search
    • 4.7.2.1. MockSearchEngine
    • 4.7.2.2. ElasticSearchEngine
  • 4.7.3. EdX Search Requirements
  • 4.7.4. Install edX Search
  • 4.7.5. Enable Indexing
    • 4.7.5.1. Which Data Gets Indexed
  • 4.7.6. Supported Flags
    • 4.7.6.1. CMS
    • 4.7.6.2. LMS

© Copyright 2023, The Axim Collaborative.

Creative Commons License
These works by The Axim Collaborative are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.