Opensolr Changelog

Recent updates and improvements to the Opensolr platform.

Apr 2026 ×

Search Apr 22, 2026

  • Fix Fixed a JavaScript SecurityError thrown when the Opensolr search page is embedded inside a cross-origin iframe. Browsers block showPicker() calls from cross-origin frames; the call is now wrapped in a try/catch so the browser restriction is silently handled instead of surfacing as an uncaught exception that could disrupt other search functionality on the host page.
  • Improved Search queries that contain a AND prefix (uppercase AND with spaces on both sides) now automatically strip everything before and including it, searching only the part that follows. For example, Crna Gora AND montenegrin constitution runs as montenegrin constitution. Useful for sites that prepend locale or scope context to a query as a workaround for index-level language filtering.
  • Fix Fixed four search parameter bugs across all platforms. (1) Wildcard searches (*:*) no longer send any highlighting parameters to Solr — highlighting on a catch-all query is meaningless and wastes server cycles. (2) The Solr highlight query (hl.q) was incorrectly set to *:* instead of the real search terms, so highlighted snippets never matched actual keywords. (3) A hardcoded stats=true / stats.field=price_f block was attached to every query even for non-commerce indexes. (4) currency_s was hardcoded into the facet field list regardless of whether the index has that field. All four are fixed in Opensolr, the Drupal module, and the WordPress plugin.
  • Improved Locale facet — flags and readable names throughout the search UI. The Locale sidebar facet now shows flag emojis and language names instead of raw locale codes: hr_hr becomes 🇭🇷 Croatian, sr_sr becomes 🇷🇸 Serbian, and so on. The top-right All Locales selector panel also displays the correct country flag beside each language group. Active locale filters — whether applied from the sidebar facet or the top-right panel — appear as removable pills labelled with flag and name. Languages without a canonical country flag (e.g. Latin, constructed codes) show a 🌐 globe icon. Applied across the Opensolr search page, Drupal module, and WordPress plugin.

Admin Apr 22, 2026

  • Improved WebCrawler — control buttons (Start/Stop Schedule, Reindex All, Reindex From Scratch, Stop Crawl, Pause/Resume, Flush to Solr) are now equal width and arranged in a clean two-column grid. Previously they were free-flowing flex items at varying widths; the container is now a two-column CSS grid so each button occupies a uniform cell.
  • Improved Index Settings — Search Mode radio buttons now sit on a single row. Previously the five options (Union, KW Required, Meaning Req., Intersection, Lexical Only) broke across two rows with the last one orphaned; the grid was widened from 4 to 5 columns so all five fit neatly side by side.

WordPress Apr 22, 2026

  • New Opensolr Search for WordPress 1.0.7 — adds the Lexical Only search mode, matching the Opensolr admin and Drupal module. Explicit opt-out from vector: no embedding API call is made, search runs through the lexical edismax path. The Minimum Relevance Score slider auto-zeroes the moment the radio is picked (backend enforces this on save and at query time as well). Yellow note in Search Mode explains the coupling.

Drupal Apr 22, 2026

  • New Opensolr Search for Drupal 3.5.0 — adds the Lexical Only search mode, matching the option in the Opensolr admin. Skips the embedding request entirely and runs pure lexical search. When selected, the Minimum Relevance Score is auto-zeroed (on save and at query time) so results aren't filtered out by a hybrid-calibrated threshold. Same feature across the stack — Opensolr admin, Drupal module, WordPress plugin.

Search Apr 22, 2026

  • New New Lexical Only search mode in Search Tuning → Search Mode. Explicit opt-out from vector — no embedding API call is made, search runs straight through the lexical edismax path. Useful for deterministic BM25 ranking, avoiding embedding API latency, or users on plans without vector who want explicit control instead of the implicit server-side fallback. When selected, the Minimum Relevance Score slider auto-zeros itself (that threshold is calibrated for the combined hybrid score; a positive value would filter out every result in pure lexical mode) and a yellow note explains the coupling.

WordPress Apr 21, 2026

  • New Opensolr Search for WordPress 1.0.5 — adds the Minimum Relevance Score slider to Search Tuning, matching the feature in the Opensolr admin and Drupal module. Drops low-scoring hybrid hits from results and facet counts, cleaning up catalog and content searches. Slider is in 0.1 increments, default 0.3.

Drupal Apr 21, 2026

  • New Opensolr Search for Drupal 3.4.0 — adds the Minimum Relevance Score slider to Search Tuning, matching the feature in the Opensolr admin. Drops low-scoring hybrid hits from results and facet counts. Slider is in 0.1 increments, default 0.3. Includes an update hook that restores the setting for sites upgrading from older versions.

Search Apr 21, 2026

  • Fix Fixed custom Minimum Match values not saving. Values containing the less-than character (e.g. 2<95% 5<90% 8<80%) were silently truncated to just the first number because the global XSS filter stripped the < before the value reached the save handler. The tuning form now reads the raw request body for this field — custom mm presets save and apply correctly.
  • Improved Search page pagination layout cleaned up — pagination is now rendered inside the results column instead of drifting to the left under the facet sidebar, and the redundant top pagination block (which appeared next to the "Did you mean" spellcheck line) has been removed. Pagination now lives only at the bottom of the results, aligned with the rest of the content.
  • New New Search Operators help button next to the Search bar. Opens a panel explaining "phrase match", +required, and -excluded operators with examples and a note on why they matter in hybrid search. Users can now refine queries like +laptop "13 inch" -refurbished and cut through semantic noise instantly.
  • New New Minimum Relevance Score slider in Search Tuning. Drops hits whose combined lexical + vector score falls below the threshold, cleaning noise out of facet counts and result totals. Essential for hybrid search on catalog-style content — without it, numFound balloons to the entire filter set and facet counts pick up docs the user would never consider relevant. Slider moves in 0.1 increments, default 0.3, 0 disables.

Analytics Apr 21, 2026

  • New Export CSV from Query Analytics — every table in the Analytics Dashboard (Popular Queries, Latest Queries, Path Distribution, Queries Over Time, Per-Server Stats) now has a green Export CSV button. Downloads are UTF-8 BOM-encoded for Excel compatibility, and the Latest Queries export respects your active filters (search, HTTP status, IP address).
  • Improved Faster Query Analytics — Popular Queries, Latest Queries, Path Distribution and Per-Server metrics now load noticeably faster across the dashboard. Historical analytics results are cached for 30 minutes (up from 5), single-hit noise is filtered out of "popular" results, and the default window for Popular/Latest Queries was expanded from 10 to 30 days so you get more context out of the box.

WordPress Apr 10, 2026

  • Fix Fixed WordPress plugin Save & Connect not registering the sitemap URL with the crawler, and Save & Start Fresh not deleting the previous index. Also added full-screen progress modal with step-by-step status and error reporting during setup, and improved product meta tag injection for WooCommerce (BreadcrumbList, price, currency, product categories).

Drupal Apr 10, 2026

  • Fix Fixed Drupal module Save & Connect not registering the sitemap URL with the crawler. The sitemap is now registered on every Save & Connect and Save & Start Fresh. Also fixed Save & Start Fresh not deleting the previous index before creating a new one. Released as 3.3.3.

Search Apr 10, 2026

  • Improved Improved hybrid search relevance — in vector hybrid mode, lexical field weight boosts are now automatically zeroed out so that semantic similarity drives the relevance ranking. Previously, even small lexical boosts could inflate scores well above the 0-1 vector range, pushing semantically relevant results down. Field weights still apply when search falls back to pure lexical mode.

WordPress Apr 9, 2026

Data Ingestion Apr 9, 2026

  • Fix Fixed Data Ingestion API endpoints returning empty responses. A PHP 8 compatibility issue in the API layer caused all ingestion, embedding, and AI endpoints to silently fail. Restored full functionality for ingest, embed, ai_summary, and all related API calls.

Search Apr 9, 2026

  • Fix Fixed Query Elevation controls not appearing on the hosted search page. Token-based authentication now accounts for CAPTCHA verification time, and elevation settings take effect immediately after toggling (previously required up to 10 minutes due to caching).

Data Ingestion Apr 9, 2026

  • Improved Data Ingestion queue dashboard redesigned for scale — indexes and jobs now load progressively on click instead of all at once. Per-index progress dialog shows real-time status for each index separately. Handles thousands of jobs without performance degradation.

Drupal Apr 9, 2026

  • Fix Fixed Query Elevation REMOVE button appearing on results with no elevation rules. Visibility now controlled via CSS class specificity instead of inline styles, fixing conflicts between button display and hide states.

Search Apr 9, 2026

  • Improved Search results count now appears directly below the search bar for immediate feedback. Response time displayed in seconds (e.g. 0.09 s) instead of milliseconds. Price and date facet sliders stay visible even when filters narrow results to a single item.

Data Ingestion Apr 9, 2026

  • Improved Improved Data Ingestion enrichment pipeline — embeddings now use structured text (text_t) when available for richer semantic vectors. Sentiment analysis uses first 10 complete sentences instead of just title + description. Document size field now computed automatically.
  • Fix Fixed duplicate documents when using both Web Crawler and Data Ingestion on the same index. URIs are now normalized (trailing slash stripped) before computing the document ID, so both methods produce the same document instead of duplicates.

Documentation Apr 9, 2026

WordPress Apr 9, 2026

Drupal Apr 4, 2026

  • New Drupal Module Partner Program — get 50% off any small or medium plan for a full year by installing and actively using the free Opensolr Search Drupal module. Provide feedback, suggestions, or bug reports in exchange. Apply from the pricing page.

Search Apr 4, 2026

  • Improved Price filter topbar slider tooltips now show thousands separators (e.g. 15,638.00 instead of 15638.00). Consistent number formatting across all slider controls, tooltips, and input fields.

Drupal Apr 4, 2026

  • Fix Safari and iOS compatibility — fixed show-more buttons, async noUiSlider loading, expand dialog z-index above Drupal toolbar, mobile overflow handling. Show-more dialogs now use event delegation for reliable touch behavior.
  • Improved Per-facet minimum count threshold — configure how many documents a facet value needs before it appears. Instant CSS tooltips on facet hover replace slow browser title popups. Facet values preserve original casing from the source data.
  • New Hierarchical drill-down facets — navigate multi-level taxonomies like breadcrumbs (e.g. Products > Electrical testing > Clamp meters). Auto-detected from JSON-LD BreadcrumbList data. Supports starting from any level and "Show more" for large lists.

Web Crawler Apr 4, 2026

  • Improved Improved web crawler date extraction for sites that lack JSON-LD or meta tags. New targeted extraction looks for dates inside HTML elements with date-related CSS classes (e.g. .date, .posted, .info) — much safer than scanning all page text.
  • Fix Fixed date indexing errors caused by timezone offsets (e.g. +03:00) in date fields. All dates are now strictly converted to UTC before sending to Solr. Added a final safety gate — any date that doesn't match the exact Solr format is dropped rather than causing an indexing error.

Search Apr 4, 2026

  • Improved Active filter pills now show numbers with thousands separators (e.g. "Price from: 9,507.99" instead of "9507.99"). Applies to both the facet sidebar pills and the topbar price filter pills.
  • Improved Facet slider inputs now display numbers with thousands separators (e.g. 15,637.00 instead of 15637.00) for better readability. Float fields (_f) show 2 decimals, integer fields show none. Min values are floored and max values are ceiled so the range always covers all results.

Website Apr 3, 2026

  • Improved Homepage Drupal card updated — now showcases the Opensolr Search for Drupal module with full-text search, facets, analytics, and AI features. New vector search e-commerce demo added to the live demos section.

Web Crawler Apr 3, 2026

  • Improved Web Crawler now respects the package's vector access flag — indexes without AI features skip embedding generation during crawls, saving GPU resources and speeding up indexing.

Control Panel Apr 3, 2026

  • New Search Facet Filters configuration section in the admin panel — discover all indexed fields via Solr schema, map them as list, slider, or date range widgets, drag to reorder. Embeddable search also supports facets via data-sidebar="on".

Performance & SEO Apr 3, 2026

  • Improved GPU priority queue for AI embeddings — user-facing search requests now always jump ahead of background crawler batch jobs. Prevents slow search during heavy indexing. Includes a configurable timeout so search falls back to lexical instantly if the GPU is busy.

API Apr 3, 2026

  • New AI and vector features (AI Hints, AI Reader, Vector Embeddings, Hybrid Search) are now gated per package. Indexes without vector access get a friendly upgrade prompt instead of a generic error. Lexical keyword search continues to work on every plan.

Search Apr 3, 2026

  • Fix Fixed search result highlighting — switched to a more reliable highlighter that correctly highlights keywords in short fields like titles. Also added text_t (structured text) to highlighted fields for richer snippets.
  • Improved Search header now stays fixed at the top while scrolling through results, keeping the search box and controls always within reach.
  • Improved Search transitions now show a loading overlay with animated dots, so you know the search is working — especially helpful on slower connections or large indexes.
  • New Facet filter sidebar — filter search results by category, price, date, and any structured field. Supports list facets, numeric sliders, and date range pickers. "Show more" dialog with letter index for browsing large facet lists. Active filters shown as removable pills. Configure facets from the admin panel under Search Facet Filters.