Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Global search (GSoC2013)

From MoodleDocs

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.

Global search
Project state Community bonding period
Tracker issue MDL-31989
Discussion https://moodle.org/mod/forum/discuss.php?d=227805
Assignee Prateek Sachan

GSOC '13

Introduction

Global Search will have the feature of searching keywords within the entire Moodle site across modules keeping the security intact.

  • It will display results based on relevance weightage.
  • Security will be preserved throughout the search.
  • Search Modules will enable chosen search engine integration with ease. Admins will have the option for selecting the modules that could be made "searchable"
  • It will include keywords from other files types (like PDFs, PPTs, HTML content and others).
  • Following are the features that I'm considering in implementing in the first version of Global Search:
  1. Groupings of AND and OR. Eg.: ("query1" AND "query2") OR "query3"
  2. Searching for phrases. Results with matched phrase will have higher priority and hence will be shown higher in the results.
  3. Wildcard (*) (?) feature.
  4. Stemming. Eg.: bag will return results both from bag and bags


Installation

For using Global Search, users will have to install the PHP Solr PECL extension on server.

Following is the procedure for installing the extension in UNIX:

There are two dependencies of the extension:

  • CURL extension (libxml2 2.6.26 or later is required)
  • LIBXML extension (libcurl 7.15.0 or later is required)

Test whether the required extensions are installed or not by executing the following in a php file (Remember to delete the file as it has important information about your system):

echo phpinfo();

If the system does not have required versions of libcurl or libxml libraries, follow the steps given below:

1. For libcurl:

sudo apt-get install php5-curl

2. For libxml:

sudo apt-get install libxml2

After installing the above dependencies, you will need to restart your apache server by executing sudo service apache2 restart

Next, you will be ready to install the PECL extension for Solr by cloning the following repository for Solr 4.x:

1. git clone https://github.com/lukaszkujawa/php-pecl-solr.git
2. cd php-pecl-solr/

If the above two dependencies were already installed, execute:

3. sudo ./configure 
4. sudo make
5. sudo make install

The above procedure will compile and install it in the extension_dir directory in the php.ini file. To enable, the installed extension, you could follow any of the following two steps:

1. Navigate to the directory etc/php5/conf.d and