Skip to content

EnglishAnalyzer ​

Optimized analyzer for English text with stemming and stop word filtering.

Import ​

typescript
import EnglishAnalyzer from 'dynamosearch/analyzers/EnglishAnalyzer';

Constructor ​

typescript
new EnglishAnalyzer(options?: EnglishAnalyzerOptions)

Parameters ​

  • stopWords ('_english_' | '_none_' | string[], optional) - Stop words to filter (default: '_english_')
  • stemmer ('porter' | 'english' | 'none', optional) - Stemming algorithm to use (default: 'porter')

Pipeline ​

  • CharFilters: None
  • Tokenizer: StandardTokenizer
  • Filters: LowerCaseFilter, StopFilter, EnglishPossessiveFilter, PorterStemFilter (or SnowballFilter with English)

Example ​

typescript
const analyzer = new EnglishAnalyzer();
const tokens = await analyzer.analyze('The running foxes');
// [
//   { token: 'run', startOffset: 4, endOffset: 11, position: 1 },
//   { token: 'fox', startOffset: 12, endOffset: 17, position: 2 }
// ]

Behavior ​

  • Removes English possessives ("'s")
  • Converts to lowercase
  • Removes English stop words
  • Applies stemming to reduce words to root form
  • Handles word variants (run, runs, running → run)

Stemming Options ​

Porter Stemmer (Default) ​

typescript
const analyzer = new EnglishAnalyzer({ stemmer: 'porter' });

Snowball English Stemmer ​

typescript
const analyzer = new EnglishAnalyzer({ stemmer: 'english' });

No Stemming ​

typescript
const analyzer = new EnglishAnalyzer({ stemmer: 'none' });

Best For ​

  • English text search with stemming
  • Handling English word variations (run, runs, running)
  • Removing English stop words
  • Improving search recall for English content

See Also ​

Released under the MIT License.