Opensolr Changelog

Recent updates and improvements to the Opensolr platform.

Fix ×

WordPress Aug 31, 2026

  • Fix WordPress Plugin 1.0.33: Deleted Media Files No Longer Stay Searchable
    WordPress plugin 1.0.33 — deleting a document from your Media Library left it searchable forever. The document was never removed from the index, so visitors kept finding a file that was no longer on your site. Replacing a file under a different name left the previous version indexed alongside the new one, so a search could return both. Both are fixed, and a newly uploaded PDF or Office document is now searchable as soon as it is uploaded instead of waiting for the next bulk ingestion run.

Drupal Aug 31, 2026

  • Fix Drupal Fix: Deleted or Replaced Documents No Longer Stay Searchable
    A deleted PDF stayed searchable forever. Removing a document from your Drupal site never removed it from the index, so visitors kept finding files that no longer existed and clicking through to nothing. Replacing a file under a different name was worse: the old text stayed in the index next to the new, and one search returned both versions. Documents are now kept in step as you delete, replace or unpublish them, and a newly uploaded document is searchable immediately rather than at the next bulk ingestion run.
  • Fix Drupal EXCLUDE ALL Elevation Rules Now Actually Apply to Every Query
    EXCLUDE ALL rules were saved but never applied. Hiding a result from every search wrote a rule that the search itself never read, so the result stayed exactly where it was. Elevation rules of this kind now apply to every query.
  • Fix Drupal Module 4.4.0: PIN and EXCLUDE Buttons on Search Results Finally Work
    Drupal module 4.4.0 — the PIN, EXCLUDE and EXCLUDE ALL buttons on your search results page did nothing. Every click came back with a permission error and no rule was saved, which means curating results from the page where you can actually see the problem had never worked since the buttons were added. They work now, and rules you create take effect on the next search.

Data Ingestion Aug 31, 2026

  • Fix ODT Extraction Fix: Text After Bold or Linked Words No Longer Lost
    Documents lost everything after their first bold or linked word. A paragraph in an .odt file was read only as far as its first styled run, so a line reading "Safety instructions for high voltage" was indexed as just "Safety". Entire paragraphs were disappearing from your index on any document that used bold, italics or links, which is most of them. The full text is now extracted. The same fix applies to spreadsheet cells and presentation slides picked up by the Web Crawler.
  • Fix OpenDocument Spreadsheets and Presentations No Longer Index as Empty Documents
    Spreadsheets and presentations in OpenDocument format were being indexed with no text in them. An .ods or .odp file passed every check, was accepted, and produced a document with an empty body. No error was raised, so there was nothing to notice: the file appeared in your index and simply never matched anything. Document extraction now reads both formats, and a file type that has no extractor behind it now fails loudly instead of quietly producing an empty document.

Search Aug 29, 2026

  • Fix Pages Without a Publication Date No Longer Rank First When Fresh Is On
    Pages with no publication date no longer rank first when Fresh is on. A page with no date was being treated as if it had been published the very instant you searched, which put undated pages at the top of a „newest first“ list — the opposite of what the toggle promises. Pages without a date are now left out while Fresh is on. Fixed everywhere at once: the hosted search page, the Drupal module, the WordPress plugin and all five packages.
  • Fix AI Hints in Drupal and WordPress Now Read the Full Text of Your Content
    AI Hints in the Drupal module and the WordPress plugin now actually read your content. The assistant was being shown only the short teaser lines already visible on the results page, and on many sites nothing at all, so it answered from almost no material. It now reads the full text of the most relevant matches straight from your index — including PDFs and Office documents added through the Data Ingestion API, which were previously filtered out of the answer even though they appeared in the results.
  • Fix Hosted Search Page Fix: Queries Matching Pages With Code Samples No Longer Error
    The hosted search page no longer errors on some queries. Searches whose results included a page containing code samples returned a blank error page instead of the results. The AI Hints answer above the results passes the matched content to the model, and certain snippets in that content were being misread while the page was assembled. Result text is now handed over exactly as indexed — punctuation, quotes, accents and code all preserved character for character — so any query works regardless of what the matching pages contain.

API Aug 28, 2026

Web Crawler Aug 26, 2026

  • Fix Web Crawler Fix: Underscores in Product Codes No Longer Replaced With Spaces
    Product codes and identifiers are no longer altered before indexing. Underscores were being replaced with spaces across the whole text while converting emoji to words, so identifiers such as ABC_123_XL were indexed as ABC 123 XL. Emoji are still converted; everything else is now indexed exactly as written.

Search Aug 26, 2026

WordPress Plugin Aug 13, 2026

  • Fix WordPress Plugin Fix: Search Pagination and Shortcode Styling Now Work Everywhere
    Search result pagination and shortcode styling fixed. Paging through results no longer stops working on the search page, and the [opensolr_search] shortcode now loads its styles and scripts wherever you place it instead of rendering unstyled. The search page is also kept out of your sitemap and indexing, so it can no longer show up as a result inside its own result list.

Drupal Module Jun 5, 2026

Drupal Module Jun 2, 2026

  • Fix Drupal Module 3.8.4: Ingestion Fatal Error With Config Entity References Fixed
    Fixed a fatal error in the Opensolr Search Drupal module (3.8.4) during data ingestion when a content type has an entity_reference field pointing to a config entity (for example Domain from the Domain module). The ingestion job aborted with "Call to undefined method ::hasTranslation()" — config entities don't implement the translation interface, so the translation-resolution helper now short-circuits for them and ingestion runs end-to-end. Thanks to rickydev90 on drupal.org for the clean report and patch in #3593311.

Billing May 25, 2026

Drupal Module Apr 24, 2026

WordPress Plugin Apr 24, 2026

  • Fix WordPress Plugin Fix: Sanitize Callback No Longer Strips Saved Facet Mappings
    Facet Mapping saves persist correctly. A legacy sanitize callback in the WordPress plugin was silently stripping every saved row under the sanitize_option_opensolr_settings filter — saves looked successful but the data never made it to the database. Fixed: the callback now handles the new rich mapping shape AND auto-promotes any legacy rows on first save.

Facet Mapping Apr 24, 2026

  • Fix Image and File Facet Mappings Now Emit Real URLs Instead of Attachment IDs
    Image and File field mappings now emit a real URL instead of the bare attachment ID. Mapping a Drupal field_image or a WordPress meta that stores an attachment ID (ACF image field with Return Format = ID, _thumbnail_id, custom image_attachment_id) now resolves to a working public URL. Guarded against numeric SKU/price fields being silently rewritten.
  • Fix Multi-Valued Facet Mappings Fixed: Crawler and Ingestion Now Produce Identical Documents
    Multi-valued field mappings work correctly end-to-end. Drupal taxonomy terms, ACF Checkbox/Select-multiple/Relationship/Gallery arrays, and WooCommerce attributes (all stored differently — multi-row vs serialized-array) now all emit as one <meta property="opensolr:X_sm"> tag per value. The Web Crawler aggregates repeated tags into a Solr array, matching what real-time ingestion already writes — so crawler and ingestion produce identical documents.

Search Apr 22, 2026

  • Fix Search Page Fix: showPicker SecurityError in Cross-Origin Iframes Silently Handled
    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.
  • Fix Four Search Parameter Fixes: Wildcard Highlighting, hl.q, Stats and Currency Facets
    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.

Search Apr 21, 2026

  • Fix Custom Minimum Match Values No Longer Truncated by the XSS Filter
    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.

WordPress Apr 10, 2026

Drupal Apr 10, 2026

Data Ingestion Apr 9, 2026

Search Apr 9, 2026

Drupal Apr 9, 2026

Data Ingestion Apr 9, 2026

Drupal Apr 4, 2026

Web Crawler Apr 4, 2026

Search Apr 3, 2026

Search Mar 31, 2026

Web Crawler Mar 28, 2026

Search Mar 18, 2026

Search Mar 17, 2026

Turbo Indexer Mar 11, 2026

  • Fix Turbo Indexer 2.5.1: Forked Workers Now Inherit the Drush URI Flag Correctly
    Fixed a bug where forked worker processes did not inherit the --uri flag from the parent Drush process. Without --uri, Drush defaults to http://default as the base URL, causing URL-dependent tokens like [site:url-brief] in Solr index field configurations to resolve incorrectly. Affected fields (e.g. ss_index_source, site, ss_url) would contain the wrong hostname. All spawned workers now correctly inherit the site URI. Update to v2.5.1 and reindex affected indexes.

Query Analytics Mar 10, 2026

Data Ingestion Mar 8, 2026

Search Mar 7, 2026

Control Panel Mar 6, 2026

  • Fix Error Log Fix: Distinct Root Causes No Longer Merged and No Missed Solr Errors
    Error Log now catches all errors for your index, even when multiple different issues occur at the same time. Previously, errors with the same top-level message but different root causes were silently merged, and some Solr errors logged without the index name prefix were missed entirely. The dashboard now shows each distinct error with its actual root cause and a compact, readable stack trace.

Web Crawler Mar 6, 2026

Web Crawler Mar 4, 2026

Search Mar 4, 2026

Web Crawler Mar 2, 2026

  • Fix Web Crawler Fix: Stale Lock Files Cleaned Up Automatically Before Resume
    Automatic cleanup of stale crawler lock files. If a previous crawl crashed or was interrupted, leftover lock files could silently prevent the next run from starting — the crawler would launch but do nothing. Resume now detects and removes stale lock files before starting, so scheduled cron runs and manual resumes always work reliably.

Search Mar 1, 2026

  • Fix Search Results Fix: Original Description Shown When Highlighter Finds No Match
    Fixed search results showing blank descriptions on some indexes. When the Solr highlighter could not find matching terms in the description field, results appeared with no text at all — even though the document had a perfectly good description. The fallback logic now correctly shows the original description when no highlighted snippet is available.

Web Crawler Mar 1, 2026

Analytics Feb 27, 2026

  • Fix Query Analytics: Full Request Column Now Shows the Complete Solr Request URL
    Fixed a bug where the Full Request column in Query Analytics was showing truncated URLs — only the first parameter was visible and the rest were cut off. The parser now correctly captures the entire query string, including complex Solr parameters with nested syntax like facet local params. All analytics data going forward will show the complete request URL.
  • Fix Analytics Chart Now Renders Up to 5,000 Data Points Without Errors
    Fixed the analytics chart refusing to render when more than 100 data points were returned. The visualization now supports up to 5,000 data points — no more "Too many data points" warnings when viewing daily stats over several months. The backend data limit was raised to match.

Website Feb 26, 2026

Website Feb 25, 2026

Analytics Feb 25, 2026

Analytics Feb 24, 2026

Infrastructure Feb 24, 2026

Analytics Feb 23, 2026

Performance & SEO Feb 23, 2026

Infrastructure Feb 23, 2026

Search Feb 21, 2026

Analytics Feb 20, 2026