Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

This module improves English-language searches by applying the Porter stemming algorithm. It reduces word variations to their root form, making searches for terms like 'blog', 'blogs', or 'blogging' equivalent. This helps to return more relevant search results.

This module implements the Porter stemming algorithm to improve English-language searching with the Drupal built-in Search module.

Stemming is a process for truncating words in a search index to a basic root so that variations on a word ('blogs', 'blogger', 'blogging', 'blog') are treated as equivalent in search. This generally results in more relevant search results.

This module implements Version 2 of the Porter stemming algorithm. An interface for testing how the algorithm stems words can be found at https://stemmer.markfullmer.com/demo/

Note: although the Porter stemming algorithm is not specific to American English, some British spellings will not be fully stemmed. Most notably, -ise word endings are not stemmed as well as -ize, due to the algorithm.

Installation and usage

This module only needs to be enabled for it to work with Drupal search. There is no configuration necessary. If you are using the search_api module, you do not need this module: Search API provides its own Porter Stemmer implementation.

After installing and enabling this module (in the usual way), you will need to rebuild the search index. To do this:

  1. Visit Administer > Site configuration > Search settings, and click on "Re-index site".
  2. Ensure that cron has run sufficient times so that the Search Settings page shows that the site is 100% indexed. You can run cron manually by visiting Reports > Status report and clicking on the "Run cron manually" link.

Limitations and Notes

  • The Porter stemming algorithm has a few parts that work better with American English than British English, so some British spellings will not be stemmed correctly. It is also definitely English-specific, and non-English content will not be stemmed correctly.
  • The core Search module in Drupal 7.x does not provide a way for a stemming module (such as Porter Stemmer) to know the language of content or search terms during searching or search indexing. So, if you have a multi-lingual Drupal 7 site and enable the Porter Stemmer module, it will unfortunately try to apply its stemming algorithm to all the content on your site, regardless of language. See this issue for details: #363336: Add option for Porter-stemmer to only stem English or language neutral content for a multi-language site.. Drupal 8 does not have this problem.
  • The Porter stemming algorithm attempts to reduce words to their lingustic root words -- it does not do general substring matching. So, for instance, it should make "walk", "walking", "walked", and "walks" all match in searching, but it will not make "walking" a match for "king".
  • In Drupal 7.x, there is an issue with excerpts in Porter Stemmer (see: #437084: Excerpt fails to find stemmed keyword). For example, if a page contains the word "walking" and someone searches for "walk", that page will be included in the search results, but the search excerpt will not display the portion of text containing "walking" (it will probably just display the first paragraph of text on that page). This should not be a problem in Drupal 8.x.

Maintainers

The Porter Stemmer module is currently co-maintained by jhodgdon and mark_fullmer. If you have questions or comments about this module, please communicate with the maintainers by posting an issue (see issues area in sidebar of this page). That way, others can benefit from the answers as well.

Activity

Total releases
1
First release
Jun 2026
Latest release
2 weeks ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
2.0.3 Stable Jun 30, 2026