Opensolr Changelog
Recent updates and improvements to the Opensolr platform.
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.
Search Mar 31, 2026
- Fix Fixed search queries containing apostrophes (e.g. "don't", "it's", "O'Brien") — the search box was showing the Solr-escaped version of the query instead of the original text. Now displays the clean, unescaped query back to the user.
Drupal Mar 29, 2026
- Improved Language selector dropdown now shows the active language first instead of alphabetical order. Crawler Settings section moved above Content Types for better admin UX.
- Improved Data Crawler and Data Ingestion admin tabs now show live document counts next to each content type — checked types show the real count, unchecked show 0, with a running total that updates instantly as you toggle checkboxes.
- Improved Opensolr Search for Drupal — full multilingual support for meta tags and JSON-LD structured data. Product categories, tags, and brands now output in the correct page language, so the Web Crawler extracts translated facet values identical to Data Ingestion.
Drupal Mar 28, 2026
- Improved Opensolr Search for Drupal — added Stop Crawl button, price display with currency symbols, and optimized query embeddings for better search relevance.
API Mar 28, 2026
- Improved New
is_queryparameter on the embed and batch embed API endpoints. Setis_query=1when embedding search queries to get optimized retrieval vectors.
Web Crawler Mar 28, 2026
- Improved Core-wide thread limit enforcement — the
max_threadssetting now controls the total number of concurrent crawler processes across all start URLs for an index, not per URL. Setting threads to 1 means exactly 1 process at a time. - Fix Fixed a bug where the Solr buffer could get permanently stuck after stopping a crawl mid-run. Documents with oversized embedding payloads no longer block the entire batch — payloads are automatically capped, and each batch flush succeeds independently.
- Improved Smarter description extraction — the crawler no longer picks up CSS, JavaScript, or theme builder garbage as page descriptions. Description priority: meta tags → JSON-LD structured data → first two sentences of extracted text.
- Improved Crawler settings changes now take effect immediately. When you save new thread count, crawl mode, renderer, or pause settings, the active crawl schedule is automatically updated — no need to stop and restart.
- New New Stop Crawl button in the Web Crawler panel — immediately stops all running crawler processes without removing the crawl schedule. The schedule resumes automatically on the next cycle.
Search Mar 28, 2026
- Improved Price badges now display currency symbols (€, $, £, ¥, etc.) instead of raw currency codes in search results. Prices also display correctly for all indexes regardless of schema configuration.
- Improved Improved vector search accuracy — the embedding model now uses instruction-tuned prefixes that optimize query vectors for retrieval. Expect 5–15% better recall on natural language queries and stronger cross-language matching (e.g. searching in Romanian and finding English results).
Drupal Mar 25, 2026
- Improved Contextual help links across all 10 admin tabs — descriptions and labels now link directly to relevant documentation and learn pages for hybrid search, autocomplete, facets, elevation, and more.
Security Mar 25, 2026
- Improved 3-round security audit on the Drupal module: XSS protection on AI streaming output (DOMParser sanitizer), Solr injection prevention on range filters and facet values, CSRF on all admin write endpoints, and safe URL generation in CLI/cron context. 35+ issues found and fixed across all module files.
Data Ingestion Mar 25, 2026
- Improved Full CJK and UTF-8 safety across the entire enrichment pipeline. Japanese, Chinese, emoji, and accented characters no longer crash batch processing. All text is sanitized before embedding, Solr push, and JSON encoding. One malformed byte in a PDF can never kill an entire batch again.
- Improved Ingestion API now skips individual duplicate documents instead of rejecting the entire batch. One duplicate URI no longer blocks 49 other documents from being indexed. The Ingestion Queue also auto-refreshes every 20 seconds when jobs are pending.
- New Real-time content sync in the Drupal module — enable one toggle and every node create, update, or delete is instantly pushed to the search index via the Data Ingestion API. Unpublishing removes it from search. No cron needed for real-time changes.
Drupal Mar 25, 2026
- New Opensolr Search for Drupal 2.0 released — major update with Data Ingestion API, real-time sync on every node save/delete, async bulk ingestion via Drupal cron (scales to 500K+ documents), full CJK/UTF-8 safety, and a 3-round security audit. Full documentation.
Search Mar 23, 2026
- New Hybrid Search Live Demo page — try vector + keyword search, facets, autocomplete, AI Hints, and all search features on a real index without signing up.
Documentation Mar 23, 2026
- Improved Five new Solr error troubleshooting guides: MergeAbortedException, Invalid Geo Coordinates, ParseException, Cannot Unload Non-Existent Core, and ConcurrentModificationException. Each includes root cause analysis, diagrams, and step-by-step fixes. All linked from the Error Audit.
- New New MySQL Import guide — step-by-step instructions for importing data from a SQL database into your Opensolr index using the Data Ingestion API.
Web Crawler Mar 23, 2026
- New Reindex All button in the Web Crawler panel. One click moves all previously crawled URLs back into the crawl queue for a full re-crawl — useful after schema changes, config updates, or when you need to refresh your entire index on demand.
Drupal Mar 23, 2026
- New Opensolr Search — official Drupal module now available on Drupal.org. Adds hybrid vector + keyword search, faceted navigation, autocomplete, AI Hints, AI Reader, spellcheck, Query Elevation, built-in analytics dashboard, and a sitemap generator — all powered by the Web Crawler. No dependency on Search API. Works with Drupal 10 and 11.
Web Crawler Mar 20, 2026
- Improved Web Crawler now automatically removes documents from the search index when their pages return non-200 status codes (404, 500, etc.) during crawling. Previously, dead pages could remain in search results indefinitely.
- New New: Web Crawler — Keep Index Fresh. Automatically re-crawl all previously indexed pages on a configurable schedule (every 7–365 days) to update content, prices, and detect broken links. Pages that return 404 or 500 are automatically removed from your search index. Available in the Crawler Settings panel under Index Settings.
Search Mar 18, 2026
- Fix Fixed autocomplete highlight incorrectly highlighting short stopwords (e.g. "e", "a", "i") inside suggestions. Highlight now only applies to query terms that are 3 characters or longer.
- Improved Search clear button (✕) is now larger and more tappable on mobile — the button is bigger, has a generous tap target with padding, and shows a visual press animation on touch. Easier to clear a query on any device.
- Improved Fresh mode is now a date window filter — Search Tuning now lets you set a Freshness Window of 2 to 365 days. When "Fresh" mode is selected, only content published within that window is returned — no more recent-but-irrelevant results pushing down the most relevant ones. The old boost-factor approach that could surface off-topic content is replaced by a clean date range filter.
Search Mar 17, 2026
- Improved Search relevancy defaults updated to Flexible minimum match — queries now return more results by default, especially for longer natural-language searches. Short queries (1-2 words) still require all terms to match, while longer queries allow partial matches for better recall. Per-index Search Tuning overrides are unaffected.
- Fix Fixed "Did you mean?" spellcheck suggestions — previously only corrected a single word in the query (e.g. "downloda invoicesr" → "download"). Now corrects all misspelled words and shows the full corrected query (e.g. "download invoices"). Works across all Search pages including hybrid vector search.
Documentation Mar 15, 2026
- Improved Major documentation expansion across Solr error troubleshooting. New in-depth guides for Leader Not Available / Index Fetch Failed, SAXParseException, Missing SearchComponents, NumberFormatException, and ClassNotFoundException. Each guide covers root cause analysis, visual diagrams, and step-by-step fixes. All integrated with the Error Audit for automatic linking.
Control Panel Mar 15, 2026
- New Smart Fix Suggestions in Error Audit — the error table now automatically matches each error against the Opensolr documentation and suggests the right FAQ page to help you fix it. See a replication failure? A config XML error? A type mismatch? Click the suggested link and get step-by-step resolution. Works in both the per-index Error Audit and the Weekly Error Digest emails. Fully automatic — no setup required.
Control Panel Mar 13, 2026
- Improved Reload and Reset error messages in the Error Audit are now human-readable — raw Java stack traces are replaced with a short root-cause summary and a direct link to the Error Log for the full details.
- Improved Index Reset is now bulletproof — the reset process verifies the index is actually empty after clearing it. If the standard reset fails (locked segments, corrupt index), it automatically falls back to a hard reset that nukes the data directory and rebuilds from scratch. Reset status is now properly reported back to the UI instead of always showing success.
- New Communications Preferences — A new Communications page under Account lets you control which email notifications you receive. Toggle the Weekly Error Digest on or off at any time. Critical alerts (disk, bandwidth) and billing emails remain always-on to protect your service.
- New Weekly Error Digest — Opensolr now sends a weekly email digest every Monday summarizing the top errors across your indexes from the past 7 days. Each index links directly to its Error Log in the dashboard. Account owners receive reports for all their indexes; team members only see the indexes they are assigned to. One consolidated email per person, no matter how many indexes you manage.
Control Panel Mar 12, 2026
- New Error Audit — every Solr error your index encounters is now automatically captured, classified, and stored for 7 days in a dedicated searchable index. The new Error Audit dashboard in the Control Panel gives you an error rate chart, severity and type breakdowns, full-text search across stack traces, date range filtering, and a detail view with root cause extraction and plain-English explanations. Find it in the left sidebar of any index, right below Tail Error Log.
Turbo Indexer Mar 11, 2026
- Fix 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
- Fix Fixed Click Analytics and No Results tabs returning 403 errors when accessing Query Analytics via the shared search link. AJAX data calls now use the correct endpoints based on how the page is accessed.
- Fix Fixed Query Analytics tabs (No Results, Click Analytics) not loading for indexes without Elevation Rules enabled. The tab content and all interactive features now work correctly regardless of whether elevation is configured on the index.
Documentation Mar 8, 2026
- Improved Updated the Data Ingestion API documentation with full content_type field guidance. The field reference now explains the default behavior, how it controls web vs media display in search results, and how MIME types are auto-detected when using rtf:true. All code examples (cURL, PHP, Python) now include content_type.
Data Ingestion Mar 8, 2026
- Fix Fixed a bug where the internal rtf flag was not always stripped before sending documents to Solr, causing an "unknown field rtf" error that failed the entire batch. The flag is now reliably removed regardless of how the value was encoded (boolean, string, or integer).
- Fix The Data Ingestion API now correctly sets the content_type field for every document. If you don't provide one, it defaults to text/html so your documents appear in the web search tab instead of being classified as media. When using rtf:true, the MIME type is auto-detected from the actual file content — PDFs get application/pdf, Word documents get their proper DOCX type, and so on.
Documentation Mar 8, 2026
- Improved Comprehensive code examples added to the Data Ingestion API documentation. Full working PHP and Python examples for both submission methods — JSON body and file upload — with error handling and job status polling. Plus updated cURL examples for every workflow.
Data Ingestion Mar 8, 2026
- Improved Cleaner error display in the ingestion queue table. Error columns now show a short summary like "30 ok, 20 doc(s) failed — click for details" instead of the full raw error. Click the message to open the Job Detail modal with the complete breakdown per document.
- Improved Detailed Solr error reporting in the Data Ingestion Queue. When a document fails at the Solr level — unknown field, type mismatch, schema violation — the exact error from Solr is captured and shown in the Job Detail modal. No more guessing why a document was rejected.
API Mar 8, 2026
- Improved The Data Ingestion API now returns a doc_ids array in every successful response, showing the auto-generated document ID (md5 of uri) for each document in your batch. Use these IDs to track, query, or update specific documents in your index.
- Improved URI is now mandatory for every document in the Data Ingestion API. The document ID is always generated as md5(uri), making the URI the single source of truth for document identity. Same URI = same document. Resubmitting a URI updates the existing document. Duplicate URIs in pending jobs are automatically rejected to prevent accidental double-indexing.
- New JSON file upload for the Data Ingestion API. Instead of embedding your documents in the request body, save your full payload as a .json file and upload it via the payload_file field. The file can contain everything — email, api_key, core_name, and documents — or just the documents array with auth as separate form fields. Ideal for large batches generated by CMS exports or data pipelines.
Data Ingestion Mar 8, 2026
- New Job Detail modal in the Data Ingestion Queue. Click any Job ID to see the full picture: status, progress, success and error counts, all timestamps, the complete error message, the processing result, and the entire payload that was submitted — with pretty-printed JSON.
- New Retry failed or completed ingestion jobs with one click. The Retry button resets the job back to pending, clearing all progress so you can re-run it after fixing the issue. Available on completed, failed, and stopped jobs.
- New Granular Run Now controls in the Data Ingestion Queue. Trigger immediate processing for a single job, an entire index, or all pending jobs for a user — no more waiting for the next cron cycle. Each pending job shows its own Run button, and every index header has a Run button when there are pending jobs.
API Mar 8, 2026
- New Document extraction in the Data Ingestion API — add rtf:true to any document and point uri at a PDF, Word, Excel, PowerPoint, or OpenDocument file. Text is extracted automatically and indexed with full enrichment. Mix regular and RTF documents in the same batch.
Account Mar 8, 2026
- New Data Ingestion Queue management page under Account in the top menu. See all jobs grouped by index with live progress bars, pause and resume mid-processing, stop or delete jobs. Auto-refreshes while active, auto-cleans completed jobs after 7 days.
API Mar 8, 2026
- New Data Ingestion API — push documents directly into your Opensolr index via POST. Submit up to 50 docs per batch with automatic vector embeddings, sentiment analysis, language detection, and all derived search fields. Works alongside the Web Crawler to push content it cannot reach: gated pages, CMS exports, product feeds. Same doc ID updates existing records.
Account Mar 8, 2026
- New API Usage dashboard is now available under Account in the top menu. See your total requests, live per-minute and per-hour usage gauges against your rate limits, a full breakdown by API endpoint, and monthly history. Know exactly how your application consumes the API and how close you are to your thresholds — all in one page.
API Mar 8, 2026
- New Global API rate limits are now enforced: 30 requests per minute and 500 per hour across all authenticated API endpoints. This applies to every API call including search, AI summaries, embeddings, and batch operations. If you need higher throughput for your integration, contact us and we will set custom limits for your account.
Search Mar 8, 2026
- New Search Tuning — six per-index relevancy controls in Index Settings. Adjust field weights, freshness boost, minimum match mode, semantic vs keyword balance, result quality threshold, and results per page. Each index is tuned independently. Changes save automatically and take effect on the next search — no reindexing, no restart.
Web Crawler Mar 7, 2026
- New Bulk query deletion in Query Analytics — select multiple queries with checkboxes and delete them in one click. Available on the Queries, No Results, and Click Analytics tabs. Useful for cleaning out junk, test queries, or inappropriate search terms from your analytics history.
- New Click Analytics with CTR tracking — see which search results users actually click. Three views in the new Click Analytics tab: Top Clicked documents, By Query with click-through rates, and Low CTR to find queries where users search but never click. All click data is IP-deduplicated and rate-limited to prevent bot noise.
- New No-Results Dashboard — a new tab in Query Analytics that tracks every search returning zero results. Each zero-result query is counted by unique IP (not raw page views), so the numbers reflect real users, not refreshes. Use it to spot content gaps, missing synonyms, or pages your crawler hasn't reached yet.
Search Mar 7, 2026
- Improved The Pin, Exclude, and Exclude All buttons on the search elevation toolbar are now high-contrast and color-coded — orange for Pin, red for Exclude — so they stand out clearly as interactive controls.
- Improved Elevation actions are now mutually exclusive per document — clicking Pin on an excluded result automatically removes the exclude first, and vice versa. No more stale conflicting rules.
- Fix Fixed a critical bug where pinning multiple documents to the same query only applied the last one. Solr was receiving the document IDs in the wrong format — now all pinned results correctly appear at the top in the order you set them.
- Improved Query Analytics & Tools — the former Query Statistics page has been completely redesigned into a clean tabbed application. Overview, Queries, and Elevation Rules each live in their own tab with lazy AJAX loading. Elevation rules now show full document details (title, description, URL) instead of raw Solr IDs, with accordion-style collapsible query groups and a regex search to instantly find any elevated document across all rules.
- New Global elevation rules — the new "Pin All" and "Exclude All" buttons let you pin or exclude a result across every search query, not just the one you are looking at. A globally pinned page always appears at the top; a globally excluded page never shows up in results, regardless of what the user searches for.
- New Query Elevation is here — pin or exclude specific search results directly from the Search UI. Enable it in your index settings, then use the elevation toolbar on any search result to pin it to the top or hide it entirely. Pin and exclude work per-query (only for a specific search term) or globally (for all searches). Pinned results can be reordered by drag-and-drop. Useful for promoting important pages, burying outdated content, or curating results for key queries.
Control Panel Mar 6, 2026
- Improved The Add New Index page now uses a sidebar filter panel instead of dropdown menus. Region, Version, Country, Type, and Crawler filters are always visible on the left, with result counts next to each value. Click any value to filter, click it again to clear. Active filters are highlighted and a Clear All link resets everything. On mobile, filters collapse behind a sticky Filters button at the top of the page.
- Improved The Add New Index page is now more compact and easier to scan. Fonts, cards, and filter controls have all been tightened up so you can see more server options at a glance without scrolling. Each card shows the key details — Solr version, region, and server type — cleanly and without clutter.
- Fix 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
- Fix Document indexing now works reliably for all major office formats. DOCX, DOC, XLSX, XLS, and PPTX files are fully supported with proper text extraction — including tables, headers, footers, and speaker notes. Previously, many documents were indexed with empty text due to format misdetection and encoding issues.
Web Crawler Mar 5, 2026
- New Clear button on Crawl Stats for 4xx and 5xx errors. Click Clear next to Client Errors or Server Errors to delete those entries from the crawl database. Useful for cleaning up old 404s before resuming a crawl so they get retried on the next run.
- Improved Faster Playwright rendering in Chrome mode. Pages now complete in ~0.5–1s instead of 2–25s. The old approach waited for all network activity to stop (analytics, trackers, ad pixels), which stalled on busy pages. Now it waits for the DOM, gives JS 500ms to hydrate, and grabs the content.
- New New Renderer setting in the Web Crawler. Choose between Curl (Fast) — the default, fetching pages in ~0.2s each — and Chrome (JS Rendering) for JavaScript SPAs like React, Vue, or Angular where content is rendered client-side. Chrome runs every page through a headless Chromium browser. Available in the UI dropdown and the REST API (renderer parameter), and persists across cron restarts.
Web Crawler Mar 4, 2026
- Improved Solr batch indexing is now more reliable during crawls. When a batch insert to Solr fails (e.g. temporary overload or timeout), the documents are kept in the local buffer and retried on the next flush cycle, instead of being silently lost.
- Fix Fixed tag field generation during crawl. The tags and title_tags fields used for autocomplete and spellcheck were being stored with raw special characters intact, which could produce noisy or broken suggestions. They are now properly cleaned — special characters stripped, whitespace normalized — so autocomplete and spellcheck results are cleaner.
Search Mar 4, 2026
- Fix Search results no longer show Jan 01 1970 as the date when a document has no real creation date. The date badge is now hidden entirely when no valid date is available.
- Fix Fixed title and description highlighting on complex search queries. When a query contained boolean operators like AND or OR, only the full-text body was being highlighted — titles and short descriptions were left plain. Highlighting now works consistently across all result fields, regardless of how complex your query is.
API Mar 3, 2026
- New API rate limiting is now active. Every authenticated API request is tracked per user and per IP, with configurable limits per minute and per hour. If you exceed the threshold you will receive a 429 response with a Retry-After header — just back off and retry. Admin accounts are exempt. Individual users or IP addresses can also be given custom limits or blocked entirely. Monthly request counters are stored persistently so you can review your API usage over time.
Web Crawler Mar 2, 2026
- Fix 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.
- New Sitemap re-discovery on Resume. When you resume a finished crawl, the crawler now re-fetches all XML sitemaps — not just the top-level sitemap index, but every child sitemap too (e.g. sitemap-products1.xml through sitemap-products22.xml). Any new URLs found in those sitemaps get queued and crawled automatically. This means your index stays up to date as your site adds new pages, without needing a full re-crawl.