Opensolr Search
Opensolr Search provides AI-powered hybrid search capabilities for Drupal, combining keyword and semantic search with AI-generated answers, autocomplete, and faceted navigation. It offers flexible content indexing options, including a web crawler and a data ingestion API, with real-time content synchronization and analytics without requiring Solr schema editing or impacting your server's performance.
AI-Powered Search for Drupal — Zero Configuration
Opensolr Search gives your Drupal site hybrid AI search (keyword + vector/semantic), AI-generated answers, autocomplete, faceted navigation, analytics, real-time content sync, and multi-site shared indexes — all from a single module with zero dependencies beyond Drupal core. No Solr schema editing. No field mapping. No indexing load on your server.
→ Live Demo | Documentation | Product Page
Two Ways to Index
Web Crawler Opensolr visits your pages externally — like Google. Indexes HTML, PDFs, DOCX, XLSX automatically. Zero Drupal load. Data Ingestion API Push content directly from Drupal. Works behind firewalls. Real-time sync on every save/delete. Bulk ingestion via cron for 500K+ sites. Both Ingestion for instant updates, crawler as a safety net. Both produce identical Solr documents.What You Get
- Hybrid AI Search — keyword (BM25) + semantic vector search (1024-dim multilingual embeddings), fused per-document by the proprietary Opensolr
{!hybrid}parser: normalized score blending, real search modes (Union / Keywords Required / Meaning Required / Intersection), cross-lingual matching. "CMS hosting" finds "Drupal cloud deployment" - Multi-Site Shared Index — point any number of Drupal sites at one index (new in 4.1.0): create it on the first site, then choose "Use an existing index" on the others. One search across your whole site family, document IDs never collide
- AI Hints — streaming AI answers above results, powered by RAG on your own content
- AI Reader — full-screen AI summaries per document
- Autocomplete — query suggestions + live Solr results in one dropdown
- Faceted Navigation — auto-discovered from your schema. Lists, date ranges with Today / Last Week / Last Month presets, numeric sliders with thousands separators. Drag-and-drop ordering. Per-facet mincount thresholds
- 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 any start level, back navigation, and "Show more" for large lists
- Result Thumbnails — map any image, file or media field as the result thumbnail, on both crawler and ingestion paths
- Smart Number Formatting — slider inputs, filter pills, and tooltips display thousands separators (e.g. 15,637.00). Float fields show 2 decimals, integers show none. Min/max boundaries are floored/ceiled to always cover all results
- Spellcheck — "Did you mean?" with automatic collation
- Query Elevation — visual PIN/EXCLUDE buttons directly on search results
- Analytics Dashboard — queries, clicks, CTR, no-results, top URLs. Privacy-first (hashed IPs)
- Search Tuning — field weights, semantic–lexical balance, search modes, minimum match presets, vector candidate pool, content quality boost
- Multilingual — automatic locale filtering per Drupal language. Each translation = separate Solr doc. Cross-lingual semantic matching out of the box
- Document Search — PDF, DOCX, XLSX, PPTX, ODT text extraction and indexing
- Commerce — products with price, currency, categories, JSON-LD structured data. Price sliders with thousands-separated display
- SEO Meta Tags — automatic OG, Twitter Cards, JSON-LD, canonical — no Metatag module needed
- Persistent Filters — admin-configured Solr fq rules applied to every search
- Embeddable Mode — optionally use Opensolr's hosted search UI instead of Twig templates
- Dark Theme — full dark mode across all elements including slider inputs and facet tooltips
- Infinite Scroll — or classic numbered pagination. Your choice
- Safari & iOS Compatible — tested on real devices. Proper touch handling, async asset loading, no layout glitches
10 Admin Tabs
Everything at /admin/config/search/opensolr:
Settings → Data Crawler → Data Ingestion → Facet Mapping → Search Display → Embeddable → Search Tuning → Analytics → Elevation → Filters
Setup in 2 Minutes
composer require drupal/opensolr_search- Enter your Opensolr email + API key → Save Credentials
- Pick your index: create a new one in the region of your choice, or attach an existing index from your account (multi-site)
- Pick content types → start crawler or enable real-time sync
- Search is live at
/opensolr-search
vs Search API Solr
Opensolr Search Search API Solr Setup Email + API key → done Install Solr, connector, config sets, schema Indexing load Zero (crawler) or minimal (cron) Heavy — pushes every field on cron AI / Vector search Built-in, with the{!hybrid} fusion parser
Not included
AI answers
Streaming RAG + document reader
Not included
Real-time sync
Built-in — push on save
Requires cron
Multi-site shared index
Built-in — "Use an existing index"
Manual multisite configuration
Analytics
Built-in dashboard
Not included
Facets
Auto-discovered, hierarchical drill-down, sliders, date ranges
Requires Facets module + config
Document search
Automatic extraction
Requires Tika module
Query elevation
Visual buttons on results
Manual XML editing
SEO meta tags
Automatic
Requires Metatag + Token
Behind firewalls
Data Ingestion API
Requires network access
Dependencies
drupal:node only
Search API + Solr + connector + more
Security
3-round security audit. Parameterized DB queries, XSS-safe Twig output, sanitized Solr params, CSRF on all write endpoints, hashed IPs, Xss::filter() on highlighting, DOMParser-based HTML sanitization on AI output. Full details in the documentation.
Requirements
- Drupal 10.1, 11 or 12 · PHP 8.1+ · HTTPS (for crawler; not needed for Data Ingestion)
- Opensolr account (free tier available) · No other modules required
Depends on
Dependencies of the latest stable release
- node Drupal core
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 5.0.4 | Stable | 10–11 | 5.0.4 — Search operators (+word, -word, exact phrases) now work with AI search on | Sep 9, 2026 | |
| 5.0.3 | Stable | 10–11 | Fixes the plan badge on the Settings screen: free accounts showed a meaningless 0.00 price and now read "free forever". The Opensolr free plan no longer expires. Paid plans are unchanged. | Sep 8, 2026 | |
| 5.0.2 | Stable | 10–11 | 5.0.2: Readable, consistent search controls, an always-visible result count, and two scoping fixes. | Sep 7, 2026 | |
| 5.0.1 | Stable | 10–11 | 5.0.1 — Security hardening (Solr parser-injection guard on search/autocomplete/facets, per-visitor endpoint rate-limits, output sanitisation) plus AI-toggle fail-closed, facet "Show all", locale-filter and autocomplete-dropdown fixes. | Sep 7, 2026 | |
| 5.0.0 | Stable | 10–11 | 5.0.0 — Search by image (CLIP/OCR/barcode), result hover-zoom + lightbox, a per-search AI (hybrid) toggle, a Duration facet, full-value facet filtering, and richer document results. | Sep 7, 2026 | |
| 4.5.0 | Stable | 10–11 | 4.5.0 — Access-restricted content excluded from the index, attached documents crawled again, and a search page that stays up when Solr or the database does not | Sep 1, 2026 | |
| 4.4.0 | Stable | 10–11 | 4.4.0 — Result curation from the search page now works, EXCLUDE ALL rules are applied, and deleted or replaced documents no longer stay searchable | Aug 30, 2026 | |
| 4.3.1 | Stable | 10–11 | 4.3.1 — "Clear all" no longer resets how results are ranked | Aug 29, 2026 | |
| 4.3.0 | Stable | 10–11 | 4.3.0 — Fresh Results Bias Weight, and undated documents no longer rank first | Aug 29, 2026 | |
| 4.2.4 | Stable | 10–11 | 4.2.4 — Fresh is now an on/off switch on the search page | Aug 29, 2026 | |
| 4.2.3 | Stable | 10–11 | 4.2.3 — Fresh Results Bias toggle, and AI Hints that read your actual content | Aug 29, 2026 | |
| 4.2.2 | Stable | 10–11 | 4.2.2 — Document Reader retells instead of reciting + AI context integrity fixes | Aug 26, 2026 | |
| 4.2.1 | Stable | 10–11 | 4.2.1 — Fuller, properly formatted AI Hints answers, grounded strictly in your indexed content | Aug 26, 2026 | |
| 4.2.0 | Stable | 10–11 | 4.2.0 — AI Hints answer the question directly, Document Reader returns the full page, Drupal 12 readiness | Aug 25, 2026 | |
| 4.1.0 | Stable | 10–11 | 4.1.0 — Use an existing index: multi-site shared-index support + restructured two-step Settings | Jul 31, 2026 | |
| 4.0.0 | Stable | 10–11 | 4.0.0 — Hybrid search rebuilt on the Opensolr {!hybrid} parser: true keyword + vector fusion, real Search-Mode semantics, and working vector search on documents. Phrase boosts and the Minimum Relevance Score control removed. | Jul 24, 2026 | |
| 3.9.0 | Stable | 10–11 | Drupal 12 compatibility. Hooks converted to the OOP #[Hook] system with #[LegacyHook] bridges. Drop-in for Drupal 10.1, 11, and 12; no config or database changes. | Jun 18, 2026 | |
| 3.8.5 | Stable | 10–11 | Fix fatal "Call to undefined method ...::hasTranslation()" when viewing a node that references a non-translatable config entity (page-view follow-up to the 3.8.4 ingestion fix | Jun 5, 2026 | |
| 3.8.4 | Stable | 10–11 | Fix fatal error during ingestion when a node references a config entity (e.g. Domain) | Jun 2, 2026 | |
| 3.8.3 | Stable | 10–11 | 3.8.3 — Fix image/file/media field mappings on Data Ingestion + correct CLI base URL | Apr 27, 2026 | |
| 3.8.2 | Stable | 10–11 | 3.8.2 — Fix image/file/media field mappings on Data Ingestion path + media reference walk-through on both indexing paths | Apr 27, 2026 | |
| 3.8.1 | Stable | 10–11 | 3.8.1 — Date-range quick presets on facet sidebar (Today / Last Week / Last Month) | Apr 24, 2026 | |
| 3.8.0 | Stable | 10–11 | Facet Mapping UX overhaul: auto-suggesting Solr Type, field type hints, end-to-end multi-valued support, configurable result thumbnail, image/file field URL resolution | Apr 24, 2026 | |
| 3.6.0 | Stable | 10–11 | Locale flags, readable language names, and highlighting fixes. | Apr 22, 2026 | |
| 3.5.0 | Stable | 10–11 | Adds Lexical Only search mode that skips vector embedding entirely. | Apr 21, 2026 | |
| 3.4.0 | Stable | 10–11 | Apr 21, 2026 | ||
| 3.3.6 | Stable | 10–11 | Apr 21, 2026 | ||
| 3.3.5 | Stable | 10–11 | Fix: hybrid search ranking ignored query keywords. Field weights from Search Tuning now flow through to the combined lexical + vector query as designed, instead of being hardcoded to zero in vector hybrid mode. | Apr 21, 2026 | |
| 3.3.4 | Stable | 10–11 | Fix sitemap registration on Save & Start Fresh — sitemap URL was registered against the old index instead of the new one. | Apr 11, 2026 | |
| 3.3.3 | Stable | 10–11 | Fix sitemap registration on setup, Save & Start Fresh index deletion, and delete_index API param. | Apr 10, 2026 | |
| 3.3.1 | Stable | 10–11 | Vector hybrid search scoring fix — field weight boosts zeroed in vector mode so semantic similarity drives relevance ranking. | Apr 9, 2026 | |
| 3.3.0 | Stable | 10–11 | Search Display tab redesign, autocomplete filter forwarding, elevation CSRF fix, mobile OG images, crawl mode hardcoded to Shallow Host. | Apr 9, 2026 | |
| 3.1.0 | Stable | 10–11 | Sort controls, hierarchical facet navigation fixes, and date picker UX improvement. | Apr 4, 2026 | |
| 3.0.0 | Stable | 10–11 | Hierarchical drill-down facets, thousands separators on all numeric displays, Safari/iOS fixes, smart decimal formatting for float vs integer fields, floor/ceil on range boundaries. | Apr 3, 2026 | |
| 2.9.0 | Stable | 10–11 | Apr 3, 2026 | ||
| 2.5.1 | Stable | 10–11 | Polish AI upgrade message: larger icon, better spacing, theme-safe colors, CTA button. | Apr 3, 2026 | |
| 2.5.0 | Stable | 10–11 | Polish AI upgrade message: larger icon, better spacing, theme-safe colors, CTA button. | Apr 3, 2026 | |
| 2.2.2 | Stable | 10–11 | Security advisory coverage — module now covered by the Drupal Security Team's coordinated disclosure policy. | Mar 31, 2026 | |
| 2.2.1 | Stable | 10–11 | Fix multilingual bundle labels, prefer structured text for AI context, remove frange filter | Mar 30, 2026 | |
| 2.2.0 | Stable | 10–11 | Multilingual field translations, per-tab content type selection, facet mapping fixes | Mar 29, 2026 | |
| 2.1.2 | Stable | 10–11 | Multilingual autocomplete filtering, translated product categories, CJK autocomplete fix, HTML entity decoding in category names. | Mar 28, 2026 | |
| 2.1.1 | Stable | 10–11 | Remove sitemap caching — always serve fresh data | Mar 27, 2026 | |
| 2.1.0 | Stable | 10–11 | Critical sitemap rewrite — fixes timeout on large sites, date range filter, schedule sync | Mar 27, 2026 | |
| 2.0.3 | Stable | 10–11 | Date range fix, slider formatting, crawl schedule sync | Mar 26, 2026 | |
| 2.0.2 | Stable | 10–11 | Solr type conversion for field mappings, meta_author parity with crawler | Mar 26, 2026 | |
| 2.0.1 | Stable | 10–11 | Fix crawl schedule on reindex buttons, add missing author fields to product and file documents during Data Ingestion. | Mar 25, 2026 | |
| 2.0.0 | Stable | 10–11 | Data Ingestion API with real-time sync, 3-round security audit, full CJK/UTF-8 safety, DB-level pagination for 500K+ sites, and 46 bug fixes. | Mar 25, 2026 | |
| 1.8.0 | Stable | 10–11 | Multilingual crawling support with crawler settings UI. Fixes wrong language indexing on multilingual Drupal sites caused by canonical URL mismatches, prevents locale variant link leaking in shallow crawl modes, and resolves end-of-crawl buffer flush ra | Mar 24, 2026 | |
| 1.7.0 | Stable | 10–11 | UI Fixes for iOS / Safari and Other UI Bug Fixes | Mar 23, 2026 | |
| 1.6.0 | Stable | 10–11 | Mar 22, 2026 |