PHPackages                             joppuyo/searchwp-finnish-base-forms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. joppuyo/searchwp-finnish-base-forms

ActiveWordpress-plugin[Search &amp; Filtering](/categories/search)

joppuyo/searchwp-finnish-base-forms
===================================

SearchWP plugin to add Finnish base forms in search index

v3.2.0(6y ago)0520[1 issues](https://github.com/joppuyo/searchwp-finnish-base-forms/issues)[2 PRs](https://github.com/joppuyo/searchwp-finnish-base-forms/pulls)GPL-3.0-or-laterPHP

Since Apr 2Pushed 2y ago1 watchersCompare

[ Source](https://github.com/joppuyo/searchwp-finnish-base-forms)[ Packagist](https://packagist.org/packages/joppuyo/searchwp-finnish-base-forms)[ RSS](/packages/joppuyo-searchwp-finnish-base-forms/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (10)Dependencies (4)Versions (37)Used By (0)

SearchWP Finnish Base Forms
===========================

[](#searchwp-finnish-base-forms)

[![Build](https://github.com/joppuyo/searchwp-finnish-base-forms/actions/workflows/build.yml/badge.svg)](https://github.com/joppuyo/searchwp-finnish-base-forms/actions/workflows/build.yml)[![Inactively Maintained](https://camo.githubusercontent.com/b74eeb36292fe587c8f0970586b8b87f4ae46c8137dfa5e34aa2fc78e5c44b0c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61696e74656e616e63652532304c6576656c2d496e6163746976656c792532304d61696e7461696e65642d79656c6c6f77677265656e2e737667)](https://gist.github.com/cheerfulstoic/d107229326a01ff0f333a1d3476e068d)

SearchWP plugin to add Finnish base forms into search index using [Voikko](https://voikko.puimula.org/).

What does it do?
----------------

[](#what-does-it-do)

This plugin allows you to add base forms of Finnish words in SearchWP search index. For example for word *koirillekin*, tokens *koirillekin* and *koira* are saved in the index during indexing. Learn mode by reading [this article](https://www.creuna.com/fi/ajankohtaista/wordpress-haku-searchwp-voikko/) (in Finnish).

This plugin is compatible with Polylang. If you have Polylang installed, it will only process content written in Finnish.

Options
-------

[](#options)

### API type

[](#api-type)

You can use bundled **voikkospell binary** (on a linux x64 system) to lemmatize the indexed terms.

There is also an option to use a system-wide **voikkospell command line application** if you have Voikko installed on your system.

It's also possible to set up an external **Node.js API** to access Voikko over HTTP. Using the binary or CLI application is much faster because it doesn't have the overhead of performing a HTTP request.

Special thanks to [siiptuo](https://github.com/siiptuo) for contributing voikkospell support for this plugin!

### Add base forms to search query

[](#add-base-forms-to-search-query)

Enable this option to add base forms to search queries entered by users.

### Split compound words

[](#split-compound-words)

Enable this option to split compound words during indexing (and for user queries if the above option is enabled). For example, the word *kerrostaloille* is transformed into tokens *kerrostaloille*, *kerrostalo*, *kerros* and *talo* in the search index.

Search result excerpts
----------------------

[](#search-result-excerpts)

It's possible to generate Google-style search result excerpts where the keywords are highlighted using `searchwp_finnish_base_forms_get_excerpt($post, $options)` function. It takes the following parameters:

- Post you want to create excerpt for
- Array of options

    - `length`: length of the excerpt, 300 characters by default
    - `query`: current search query, by default it's `get_search_query()`
    - `fallback` Anonymous method that generates excerpt to display if the search query is not found in the post content, by default this will use 'excerpt' field and fall back to 'content' field. The text will be truncated according to `length`

    This function will automatically check all fields for the search terms that have been configured in SearchWP settings.

Requirements
------------

[](#requirements)

- SearchWP 2.5 or later
- PHP 5.5.9
- One of the following:
    - A x64 Linux or Mac server
    - A server with voikkospell command line application installed
    - A server with Node.js and about 1GB of spare RAM

Installation
------------

[](#installation)

1. **Download** latest version from the [releases](https://github.com/joppuyo/searchwp-finnish-base-forms/releases) tab
2. **Unzip** the plugin into your `wp-content/plugins` directory
3. **Activate** SearchWP Finnish Base Forms from your Plugins page

### Bundled voikkospell binary

[](#bundled-voikkospell-binary)

1. Go on the Plugins page, find the plugin, click **Settings**. For **API Type** select **Voikko binary (bundled)**.

### Voikkospell command line

[](#voikkospell-command-line)

1. Install voikkospell on your server. On Ubuntu/Debian this can be done with `apt install libvoikko-dev voikko-fi`
2. Go on the Plugins page, find the plugin, click **Settings**. For **API Type** select **Voikko command line**.

### Node.js web API

[](#nodejs-web-api)

1. Install and start [Voikko Node.js web API](https://github.com/joppuyo/voikko-node-web-api).
2. Go on the Plugins page, find the plugin, click **Settings** and enter the Node API URL there

After installation, remember to re-index the site from SearchWP settings page.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 95.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Recently: every ~80 days

Total

29

Last Release

2386d ago

Major Versions

v1.1.2 → v2.0.02018-06-01

v2.4.0 → v3.0.02018-12-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/f3c4b44161119b358d2b0a29605a3e0ebff3ee26a170cb642b095730e8f9d746?d=identicon)[joppuyo](/maintainers/joppuyo)

---

Top Contributors

[![joppuyo](https://avatars.githubusercontent.com/u/1595438?v=4)](https://github.com/joppuyo "joppuyo (135 commits)")[![siiptuo](https://avatars.githubusercontent.com/u/10729330?v=4)](https://github.com/siiptuo "siiptuo (6 commits)")

---

Tags

lemmatizationsearchstemmerstemmingvoikkowordpresswordpress-plugin

### Embed Badge

![Health badge](/badges/joppuyo-searchwp-finnish-base-forms/health.svg)

```
[![Health](https://phpackages.com/badges/joppuyo-searchwp-finnish-base-forms/health.svg)](https://phpackages.com/packages/joppuyo-searchwp-finnish-base-forms)
```

###  Alternatives

[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[algolia/algoliasearch-magento-2

Algolia Search &amp; Discovery extension for Magento 2

1881.8M16](/packages/algolia-algoliasearch-magento-2)[spatie/laravel-export

Create a static site bundle from a Laravel app

646127.9k5](/packages/spatie-laravel-export)[statamic-rad-pack/meilisearch

meilisearch search driver for Statamic

1661.7k](/packages/statamic-rad-pack-meilisearch)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
