Installing, Configuring, and Running the Open edX Platform
  • 1. For Your Information
    • 1.1. Change Log
    • 1.2. Read Me
    • 1.3. Other edX Resources
    • 1.4. edX Browser Support
  • 2. Open edX Dogwood Release
    • 2.1. What’s Included in Dogwood
    • 2.2. What is the Dogwood Git Tag?
    • 2.3. Installing the Dogwood Release
    • 2.4. Upgrading from Cypress to Dogwood
  • 3. Open edX Cypress Release
    • 3.1. What’s Included in Cypress
    • 3.2. What is the Cypress Git Tag?
    • 3.3. Installing the Cypress Release
    • 3.4. Upgrading from Birch to Cypress
  • 4. Open edX Birch Release
    • 4.1. What’s Included in Birch
    • 4.2. What is the Birch Git Tag?
    • 4.3. Installing the Birch Release
    • 4.4. Upgrading from Aspen to Birch
  • 5. Open edX Platform Installation Options
    • 5.1. Open edX Developer Stack
    • 5.2. Open edX Fullstack
  • 6. Installing the Open edX Developer Stack
    • 6.1. Overview
    • 6.2. Components
    • 6.3. Knowledge Prerequisites
    • 6.4. Software Prerequisites
    • 6.5. Install DevStack
    • 6.6. Install Devstack using the Torrent file
    • 6.7. Troubleshooting the Devstack Installation
  • 7. Running the Open edX Developer Stack
    • 7.1. Connect to the Devstack Virtual Machine
    • 7.2. Set Up Ability to Preview Units (Mac/Linux Only)
    • 7.3. Customize the Source Code Location
    • 7.4. Run the LMS on Devstack
    • 7.5. Run Studio on Devstack
    • 7.6. Run Discussion Forums on Devstack
    • 7.7. Default Accounts on Devstack
  • 8. Installing the Open edX Analytics Developer Stack
    • 8.1. Overview
    • 8.2. Components
    • 8.3. Install the Software Prerequisites
    • 8.4. Install the Analytics Devstack
    • 8.5. Using the Analytics Devstack
  • 9. Installing Open edX Fullstack
    • 9.1. Overview
    • 9.2. Components
    • 9.3. Knowledge Prerequisites
    • 9.4. Software Prerequisites
    • 9.5. Install Open edX Fullstack
    • 9.6. Browser Login to Open edX Fullstack
  • 10. Changing the Way Open edX Looks
    • 10.1. What is Theming?
    • 10.2. Creating a Theme
    • 10.3. Sass Theming
    • 10.4. Activating a Theme
    • 10.5. Supported Themable Assets
    • 10.6. Supported Themable Templates
    • 10.7. Supported Themable Sass Variables
    • 10.8. Theming Glossary
  • 11. Configuring the Open edX Platform
    • 11.1. Guidelines for Updating the Open edX Platform
    • 11.2. Enabling Course Prerequisites
    • 11.3. Enabling Entrance Exams
    • 11.4. Enabling Course and Video Licensing
    • 11.5. Enabling Open edX Search
    • 11.6. Enabling Certificates
    • 11.7. Enabling Badging
    • 11.8. Enabling Custom Courses
    • 11.9. Enabling Social Sharing of Courses and Certificates
    • 11.10. Enabling Third Party Authentication
    • 11.11. Configuring an edX Instance as an LTI Tool Provider
    • 11.12. Setting Up the YouTube API Key
    • 11.13. Configuring Open Response Assessments
    • 11.14. Installing an XBlock
  • 12. Installing and Configuring edX Insights
    • 12.1. Options for Installing edX Insights
    • 12.2. Using Elastic MapReduce on AWS
  • 13. Setting Up the Open edX Mobile Applications
    • 13.1. Accessing the Source Code
    • 13.2. Configuring Mobile Application Features
    • 13.3. Configuring Video Modules for Mobile
    • 13.4. Enabling Push Notifications
  • 14. Index of EdX Feature Flags
  • 15. Glossary
    • 15.1. A
    • 15.2. C
    • 15.3. D
    • 15.4. E
    • 15.5. F
    • 15.6. G
    • 15.7. H
    • 15.8. I
    • 15.9. K
    • 15.10. L
    • 15.11. M
    • 15.12. N
    • 15.13. O
    • 15.14. P
    • 15.15. Q
    • 15.16. R
    • 15.17. S
    • 15.18. T
    • 15.19. U
    • 15.20. V
    • 15.21. W
    • 15.22. XYZ
 
Installing, Configuring, and Running the Open edX Platform
  • Table of Contents »
  • 11.5. Enabling Open edX Search
  • Edit on GitHub

11.5. Enabling Open edX Search¶

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

11.5.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 developer stack, edX search is enabled by default. You must enable this feature to use it with Open edX full stack.

Note

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

11.5.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.

11.5.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.

11.5.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 v0.90.13, and Django Elasticsearch is 0.4.5.

11.5.3. EdX Search Requirements¶

EdX Search requires the following applications.

  • Django (edX Platform version)
  • pyMongo (edX Platform version)
  • pytz
  • Django elasticsearch (0.4.5)

11.5.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.

For existing installations, you must install edX Search manually.

To install edX Search, make sure you are logged to your server as the edxapp user and are located in edx-platform directory.

If you are not, run the following before continuing:

sudo su edxapp -s /bin/bash cd ~source edxapp_env

Then install edX Search using one of the three following options.

11.5.4.1. Option 1 – Add Requirement¶

Add the GitHub link to edx-search to the requirements/edx/github.txt file.

-e git+https://github.com/edx/edx-search.git@ae459ead41962c656ce794619f58cdae46eb7896#egg=edx-search

Then reinstall GitHub requirements.

pip install -r requirements/edx/github.txt

11.5.4.2. Option 2 – Install Locally¶

Checkout the edx-search GitHub repository.

Then in the edx-search directory, run the following command.

pip install -e ./

11.5.4.3. Option 3 – Install from GitHub¶

Run pip with a GitHub link.

pip install -e git+https://github.com/edx/edx-search.
  git@ae459ead41962c656ce794619f58cdae46eb7896

11.5.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.

11.5.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.

11.5.6. Supported Flags¶

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

11.5.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"
      }
    }
    

11.5.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
Next Previous

© Copyright 2015, edX.