Final report Course search plugin@moodle

Pencil Down !  (17 September – 22 September )

Finally we are finished up with the project. Here is the final report of project. Here are some quick summary of project.

Introduction to advance course search :-

The project describe the integration of Apache Solr as a 3rd party Search API with moodle course schema for the implementation of course search that is flexible, case-insensitive, works with non-latin languages, fast, and can sort results by should be database independent or should supports as many databases as possible. this is a plugin that can be installed and configured to substitute basic core search.

Problem description :-

  • Non latin support with search queries: Database engines don’t recognize word boundaries in non-english languages and can’t do case-insensitive search.
  • Indexing: We don’t want to reinvent the wheel as there are many awesome open source enterprise level search indexers available that can make our course search fast and efficient.
  • Sorting by relevance: We need to sort results according to relevance for example if a query result matches course name then it’s more relevant then its other matches with summary of course. Implementing spelling correction (Did you mean?) feature. Also fuzzy search (alternate form of words) needs to be implemented.
  • Work consistently on different database engines and different content language: Course search should be implemented in a way that it can deal with as many databases possible. and it should be able to deal with different content language.

Requirements :-

  • Java 5 or higher (a.k.a. 1.5.x).
  • PHP 5.1.4 or higher.
  • Solr 4.x
  • Moodle 2.5 or higher

Capabilities :-

  • Works with non-latin languages too
  • Auto-suggestions
  • 10 times Faster search
  • Search with almost all file types
  • Spell check capability
  • Case insensitive search capability
  • Database independent & scalable
  • Fuzzy search(alternate form of words)
  • Search sorting based on relevancy(score)
  • Filtering results by startdate
  • Pagination & filtering results
  • Keyword Matching(Searching within specific field)
  • Proximity Search
  • Quite easy to setup and use
  • Logical operator with queries

Inspired by :-


Advance course search@moodle quick demostration

Weekly Report 12 Gsoc @ Moodle

week 11 ( 8 September – 15 September )

hey everyone,

This week’s major task was to write modify renderer file so that it works whether solr is up or not.  I need to perform following checks with the course search plugin.

  • Admin tool is installed ?
  • Admin tool is configured ?
  • Solr is up ? (Ping to solr is successful or not ? )

if either of the condition goes wrong. we need to come up with the core moodle search.

Here is the flow diagram how search works from input search query to rendering results to course search page.

Decision making with advance course search plugin

Decision making with advance course search plugin

Weekly Report 11 Gsoc @ Moodle

week 11 (28 august- 5 September)

Task 1 Filtering results by startdate :-

This week my task was to filter course results by startdate. Solr range can be used to implement the same.

Working with solr range queries :-

Range Queries allow one to match documents whose field(s) values are between the lower and upper bound specified by the Range Query.

startdate:[2013-08-24T00:00:00Z  TO *]  // courses that are started after 24 august
 startdate:[2013-08-24T00:00:00Z TO 2013-09-24T00:00:00Z]  // courses that is going to start b/w august to sep.

Solr’s built-in field types are very convenient for performing range queries on numbers without requiring padding.