This module integrates Drupal with Sphinx Search, a full-text search engine available under GPL version 2. It can be used as a drop in replacement of Drupal search framework. It also offers tagadelic and faceted search support. Sphinx can be installed on the same server Drupal is running, however it is recommended to do so on a different one. You can even partition indexes, each managed from a different server, so Sphinx provides an ideal alternative when you need to implement a fast and scalable solution for your site.

Requirements:

  • PHP needs to be compiled with --enable-memory-limit.
  • Sphinx 0.9.8 and up (shell access is required here)

Features:

  • High search speed (avg query is under 0.1 sec on 2-4 GB text collections), high scalability (upto 100 GB of text, upto 100 M documents on a single CPU), distributed searching, phrase proximity ranking, stemming, stopwords, etc.
  • Search page with options to filter by author, content types (configurable), taxonomies (configurable), support for all, any and phrase matching modes, sort by relevance, date created or last updated time, ascending or descending. It also provides options to customize search results page (size of excerpts, results per page, easily themable, etc.). Separate flood thresholds per anonymous and registered users. Options to log or not to log search requests.
  • Configurable tagadelic alike pages and blocks (tag clouds). Term links can be taxonomy managed or set to start a new search with predefined filters.
  • Basic faceted search support using a block that is displayed only under the context of search pages. It complements the advanced search form with facets for taxonomies, content author and content type.
  • Modular design to make it easy to reuse functionality so it's open to create external modules based on this one to provide alternate search interfaces to deal with different kind of things. It is all around content, which means nodes, though. Future versions will add support to extend indexes with additional fields, etc.
  • It is possible to set the path for the search page from the admin panel, so the search page provided by this module can co-exist with anything else you might have installed in your site. Choose an unused path that better suits your needs and go. Usage of this module is independent of Drupal core search for content, so you can disable Drupal core search completely. If you need Drupal search framework to provide search capabilities of different kinds, such as searching for users, then you may wish to take a look at Core Searches module.
  • This module implements methods to build Sphinx indexes using XMLPipe source type. This makes it possible to index any kind of text around nodes. For instance, it is possible to index comments, CCK fields, etc. The XMLPipe generator uses nodeapi 'alter' and 'update index' to allow external modules alter and/or inject extra text to be indexed, the same way Drupal search works. Please, check out the README.txt of the project for installation instructions, and deeper overview of implementation details.
  • Administration panel with options to customize Sphinx searchd connection, Sphinx Client API settings, etc. There's also a "Check connection" option that is aimed to help us diagnose connection issues.
  • Sample script for managing the Sphinx searchd daemon (start/stop/restart) and also options to build main/delta indexes. Sample sphinx.conf and logrotate script. See contrib subdirectory of the package.

Sites using Sphinx search module:

If you wish to see your site listed here, please open a task to the issue tracker and post a link to your Sphinx search page with a short description (maybe number of nodes, or anything else that you may find of interest to others), I'll be adding them here as time permits.

  • Gamefilia Blogs (who originally sponsored this project; +13000 nodes, +50000 comments, +2800 users, indexes: 1 main rebuilt daily + 1 delta rebuilt every 5 minutes)

Project Information

Downloads