Search Tuning & Relevance

Fine-tune how results are ranked

Search Tuning

The Search Tuning tab (/admin/config/search/opensolr/tuning) lets you fine-tune how search results are ranked.

💡 Optional!

The defaults work well for most sites. Only change these if you want to tweak how results are ranked or if you're getting unexpected search behavior.

Semantic vs. Lexical Balance

This slider controls the balance between two types of search:

  • Lexical (keyword) search β€” matches exact words in your content. "Drupal hosting" matches pages containing those exact words. Works out of the box on every Opensolr plan.
  • Semantic (vector) search β€” understands meaning. "Drupal hosting" also matches pages about "CMS cloud deployment" because the meaning is similar. Available on vector-enabled plans β€” contact us to get started.

The slider goes from 10 (mostly semantic) to 100 (mostly keyword). Default is somewhere in the middle.

Slide left (more semantic)

Better for natural language questions ("how do I set up search on my site?"). Results match by meaning, not just keywords.

Slide right (more keyword)

Better for exact lookups ("search_api_solr module"). Results must contain the actual words typed.

Field Weights

Five inputs in a single row that control how much each part of a page contributes to its relevance score. Each value is the multiplier applied to that field in the underlying Solr edismax qf / pf parameters. Range: 0.01 (almost ignored) to 1.0 (maximum). Defaults are kept low so the lexical score stays in the same magnitude as the KNN cosine similarity score (0–1) when combined.

  • Title β€” weight for the page title. Default: 0.1
  • Description β€” weight for the meta description. Default: 0.03
  • URI β€” weight for the page URL. Default: 0.01
  • Text β€” weight for the full body text. Default: 0.01
  • LD Text β€” weight for the cleaner JSON-LD structured text (text_t Solr field). Default: 0.03

Phrase boost multipliers (pf, pf2, pf3) are applied automatically at 0.8x / 0.4x / 0.2x of the field weights you set. They reward results where query terms appear close together.

Minimum Match

Controls how many of the search terms must appear in a result for it to be included.

Flexible

Show more results, even if not all search words match. Good for broad discovery.

Balanced (recommended)

Most words must match. Good balance between completeness and precision.

Strict

Almost all words must match. Fewer results but more precise.

Custom

Enter your own Solr mm syntax for full control.

Search Mode

Controls how keyword and semantic signals are combined. These options are available on vector-enabled plans β€” lexical keyword search works independently on every plan.

  • Union (default) β€” broadest. A result matches if keywords OR meaning matches.
  • Keywords Required β€” keywords must match, semantic adds extra boost.
  • Meaning Required β€” semantic match required, keywords add extra boost.
  • Intersection β€” most restrictive. Both keywords AND meaning must match.
  • Lexical Only β€” skips the embedding request entirely. Pure keyword (BM25) search, no vector scoring. Automatically resets Minimum Relevance Score to 0.

Vector Candidate Pool

A slider from 10 to 1000 controlling how many vector candidates are considered before final ranking. Default: 500. Leave at 500 unless you notice search speed issues or missing results. This setting applies to vector-enabled plans.

Minimum Relevance Score

A slider from 0 to 1.0 (default 0.3) that removes results whose combined keyword + semantic score falls below the threshold. Applied as a Solr post-filter after scoring.

  • 0 (off) β€” all candidates returned; facet counts may include near-zero matches.
  • 0.1–0.3 β€” recommended range. Removes noise while keeping legitimate results.
  • 0.4+ β€” increasingly strict; use only if results feel very off-topic.

Automatically set to 0 when Lexical Only mode is selected β€” the threshold is calibrated for the combined hybrid score and would filter all results in pure keyword mode.

Content Quality Boost

A slider from 0 to 1.0 (default 0, off) that rewards content-rich pages over thin or stub pages. The boost uses the quality_f Solr field, computed at indexing time from title length, description length, body text length, and presence of an og:image.

Set to 0 to disable. Try 0.3–0.5 if your site mixes detailed articles with short stubs and you want substance to rank higher. Leave at 0 if your content is reasonably uniform.

Reset All to Defaults

Each control has a Reset button next to it that restores it to the module default. The Reset All to Defaults button at the bottom of the page resets every tuning parameter at once.

Changes take effect immediately

Tuning is applied at query time, not index time. The very next search after you save uses the new values β€” no re-crawl, no re-ingest needed.