Opensolr Changelog
Recent updates and improvements to the Opensolr platform.
API Aug 29, 2026
-
Improved
Integration Packages 0.3.0: Live Test Suite Catches Hybrid Mode and Retry Bugs
The LangChain, LlamaIndex, Haystack, MCP and Laravel Scout packages are out at 0.3.0, and every one of them is now covered end to end by a live test suite that runs against the real API. Three things that suite found are fixed in this release: a mistyped hybrid search mode returned a silently different result set instead of an error, argument checks ran after the embedding call rather than before it, and a dropped connection surfaced as a raw network error instead of being retried.
API Aug 28, 2026
-
Improved
api.opensolr.com Now Serves Only AI and Data Ingestion; Management Stays on opensolr.com
api.opensolr.comnow serves only the AI and Data Ingestion endpoints. Embeddings, hybrid search,ai_summaryand the ingestion queue answer there; every management endpoint (indexes, configuration, crawler, backups, security) is served exclusively byopensolr.comand answers 403 on the AI host. No client change is needed — all official integrations already use the right host for each call. -
Improved
API Reference Rewritten: Real Error Responses, HMAC Endpoints and Host-by-Host Breakdown
The API Reference page now tells the truth about errors and hosts. It explains which endpoints live on
opensolr.com(management) and which onapi.opensolr.com(AI & Data Ingestion), lists the four HMAC-signed endpoints, and documents the real error responses (HTTP 200 with"status": falsefor application errors, 403 for authentication, 429 withRetry-After). Two commands that referenced non-existent endpoints were removed from the Solr Migration guide.
API Aug 26, 2026
-
Improved
LangChain, LlamaIndex, Haystack, MCP and Laravel Scout Updated With Fuller Answer Behaviour
All AI integrations updated. LangChain, LlamaIndex, Haystack, the MCP server and Laravel Scout all ship the new answer behaviour. Update with
pip install -Uorcomposer update. -
Improved
ai_summary API Goes Fully Deterministic: Your Instruction Is the Prompt, Byte for Byte
The
ai_summaryAPI is now fully deterministic: your instruction is the prompt. Whatever you send ininstructionis exactly what the model reads, byte for byte. Nothing reorders it, relabels it, appends to it or shortens it, so a prompt you tuned behaves the same on every call. Retrieval stays yours: run embed_and_search, take your top results and place them in the prompt where you want them. Thequeryandcontextparameters still work for existing integrations. Prompts up to 100,000 characters are accepted.
API Aug 25, 2026
-
Improved
LangChain, LlamaIndex, Haystack, MCP and Laravel Scout Ship Grounded AI Answers by Default
Every AI integration ships the improved answer behaviour. LangChain, LlamaIndex, Haystack, the MCP server and Laravel Scout all now send a grounded answer instruction by default and drop weakly matching documents before generating, so RAG answers are direct and stay on topic. Update with
pip install -Uorcomposer update.
API Aug 15, 2026
-
Improved
embed_and_search API Now Returns Identical Results to Your Hosted Search Page
embed_and_search now matches your hosted search page exactly. The one-shot hybrid search endpoint runs the platform’s full tuned pipeline: your index’s saved Search Tuning applies automatically, natural-language questions are processed the same way as on your search page (stopwords cleaned for keyword matching, while the full phrase goes to the semantic embedder), and every tuning knob (
fw_*,mm,search_mode,vector_topk,quality_boost, and more) accepts per-request overrides. Results returned via the API are now identical to your search page. Full parameter reference in the AI-Hints API guide. -
Improved
Search Tuning Settings Now Apply Automatically to All AI Integrations
Your Search Tuning now applies everywhere — including all AI integrations. Everything you configure in Index Settings → Search Tuning (semantic↔lexical balance, field weights, minimum match, search mode, vector candidate pool, content quality boost) now applies automatically to every search and every RAG answer made through the LangChain, LlamaIndex, Haystack, Laravel Scout, and MCP integrations — the same tuned pipeline as your hosted search page. Each knob can also be overridden per call from code via the new
tuningparameter. Packages updated: LangChain, LlamaIndex, Haystack (v0.2.5), Laravel Scout (v0.2.5), MCP (v0.2.6).
API Aug 14, 2026
-
Improved
All AI Integrations Upgraded to v0.2.0 With Data Ingestion API Writes and Lexical-Only Mode
All AI integrations upgraded to v0.2.0. Writes in every integration — LangChain, MCP, LlamaIndex, Haystack, Laravel Scout — now go through the Data Ingestion API: documents are queued and enriched server-side (embeddings, sentiment, language, and all derived fields — identical to the Web Crawler), with progress visible in your Control Panel. Every integration also gains a lexical-only mode: pure keyword search with zero AI quota that works on any Opensolr index, including non-vector ones. Plus delete-by-query support and server-side PDF/DOCX text extraction via rtf:true.
API Mar 28, 2026
-
Improved
New is_query Parameter on Embed APIs for Optimized Retrieval Vectors
New
is_queryparameter on the embed and batch embed API endpoints. Setis_query=1when embedding search queries to get optimized retrieval vectors.
API Mar 8, 2026
-
Improved
Data Ingestion API Responses Now Include a doc_ids Array for Every Batch
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
Data Ingestion API: URI Now Mandatory, Document IDs Generated as md5 of URI
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.