Apache Solr website screenshot

Apache Solr

Apache Solr is an open-source enterprise search platform built on Apache Lucene. It provides distributed indexing, replication, load-balanced querying, automated failover and recovery, and centralized configuration through SolrCloud. Solr exposes comprehensive REST/HTTP APIs for document indexing, full-text search with faceting and highlighting, schema management, collections management, and cluster operations. It is an Apache Software Foundation project used by major organizations for enterprise-scale search solutions.

5 APIs 9 Features
Enterprise SearchFull-Text SearchLuceneSearchSolrCloudOpen SourceJava

APIs

Apache Solr Search API

The Solr Search API provides HTTP endpoints for full-text document search, including query parsers (Standard, DisMax, Extended DisMax), JSON Query DSL, faceting and JSON Facet A...

Apache Solr Indexing API

The Solr Indexing API provides HTTP endpoints for adding, updating, and deleting documents from the search index. It supports JSON, XML, CSV, and binary Solr formats via the /up...

Apache Solr Schema API

The Solr Schema API provides REST endpoints for managing the schema of a Solr collection, including field types, fields, dynamic fields, and copy fields. The Managed Schema appr...

Apache Solr Collections API

The Solr Collections API provides REST endpoints for managing SolrCloud collections, shards, replicas, and aliases. It supports collection creation, deletion, modification, shar...

Apache Solr Config API

The Solr Config API and Request Parameters API provide REST endpoints for managing Solr's solrconfig.xml settings at runtime without server restart, including request handler co...

Collections

Pricing Plans

Rate Limits

Apache Solr Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Full-Text Search

Comprehensive full-text search with tokenization, stemming, synonyms, and relevance scoring.

SolrCloud

Distributed search and indexing with automatic sharding, replication, and ZooKeeper coordination.

Faceted Search

Dynamic faceting including field facets, range facets, pivot facets, and JSON Facet API.

Streaming Expressions

SQL-like streaming expressions for distributed corpus analytics and aggregations.

Dense Vector Search

Approximate nearest neighbor (ANN) search for AI/ML vector embeddings using HNSW algorithm.

Learning to Rank

Machine learning-based relevancy tuning with custom feature extraction and model training.

Real-Time Get

Near-real-time document retrieval before documents are committed to the index.

Spatial Search

Geographic and spatial search with distance filtering and bounding box queries.

SQL Interface

SQL query language with JDBC support for analytics tools like Zeppelin and R.

Use Cases

Enterprise Search

Unified enterprise search across documents, databases, web content, and file systems.

E-Commerce Product Search

Product catalog search with faceting, filtering, and recommendation engines.

Log Analytics

Log ingestion and search for operational intelligence and security analysis.

AI/ML Vector Search

Semantic and similarity search using dense vector embeddings from AI models.

Content Management Search

Full-text search backend for CMS platforms and digital asset management systems.

Integrations

Apache ZooKeeper

Distributed coordination service for SolrCloud cluster management and configuration.

Apache Kafka

Stream ingestion via Kafka connector for real-time document indexing.

Kubernetes

Solr Kubernetes Operator for cloud-native deployment and management.

Grafana

Metrics integration via Prometheus exporter for Solr cluster monitoring.

Apache Tika

Document parsing for indexing rich content like PDFs, Word documents, and HTML.

Apache NiFi

Data flow integration for automated document ingestion pipelines.

OpenNLP

Natural language processing integration for text analysis and named entity recognition.

Resources

👥
GitHubRepository
GitHubRepository
🔗
Documentation
Documentation
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
📄
ReleaseNotes
ReleaseNotes
💬
Support
Support
📜
TermsOfService
TermsOfService
📦
SolrJ Java Client
SDKs
📦
Solr Kubernetes Operator
SDKs

Sources

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Apache Solr HTTP API
  version: 9.x
items:
- info:
    name: Cluster
    type: folder
  items:
  - info:
      name: Invoke a Collections / Cluster API action (v1)
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/admin/collections
      params:
      - name: action
        value: ''
        type: query
        description: Action name (e.g. CLUSTERSTATUS, CLUSTERPROP, BALANCESHARDUNIQUE, REPLACENODE, DELETENODE, ADDROLE, REMOVEROLE,
          OVERSEERSTATUS)
      - name: collection
        value: ''
        type: query
      - name: shard
        value: ''
        type: query
      - name: name
        value: ''
        type: query
      - name: val
        value: ''
        type: query
      - name: node
        value: ''
        type: query
      - name: sourceNode
        value: ''
        type: query
      - name: targetNode
        value: ''
        type: query
      - name: role
        value: ''
        type: query
      - name: async
        value: ''
        type: query
    docs: Invoke a Collections / Cluster API action (v1)
  - info:
      name: Get cluster status (v2)
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/cluster
    docs: Get cluster status (v2)
  - info:
      name: Modify cluster roles
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/cluster
      body:
        type: json
        data: '{}'
    docs: Modify cluster roles
  - info:
      name: Set a cluster property
      type: http
    http:
      method: PUT
      url: http://{host}:{port}/api/cluster/properties/:name
      params:
      - name: name
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Set a cluster property
  - info:
      name: Delete a cluster property
      type: http
    http:
      method: DELETE
      url: http://{host}:{port}/api/cluster/properties/:name
      params:
      - name: name
        value: ''
        type: path
    docs: Delete a cluster property
  - info:
      name: Balance replicas across nodes
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/cluster/replicas/balance
      body:
        type: json
        data: '{}'
    docs: Balance replicas across nodes
  - info:
      name: Migrate replicas from source nodes to target nodes
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/cluster/replicas/migrate
      body:
        type: json
        data: '{}'
    docs: Migrate replicas from source nodes to target nodes
  - info:
      name: Replace a node (recreate its replicas elsewhere)
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/cluster/nodes/:sourceNode/replace
      params:
      - name: sourceNode
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Replace a node (recreate its replicas elsewhere)
  - info:
      name: Delete all replicas in a node
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/cluster/nodes/:node/clear/
      params:
      - name: node
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Delete all replicas in a node
  - info:
      name: Overseer status, metrics, and recent failures
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/cluster/overseer
    docs: Overseer status, metrics, and recent failures
- info:
    name: Collections
    type: folder
  items:
  - info:
      name: Distribute a property evenly across nodes for a collection
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/collections/:collection/balance-shard-unique
      params:
      - name: collection
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Distribute a property evenly across nodes for a collection
- info:
    name: Schema
    type: folder
  items:
  - info:
      name: Retrieve the entire schema of a collection
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema
      params:
      - name: collection
        value: ''
        type: path
      - name: wt
        value: ''
        type: query
    docs: Retrieve the entire schema of a collection
  - info:
      name: Execute schema modification commands
      type: http
    http:
      method: POST
      url: http://{host}:{port}/solr/:collection/schema
      params:
      - name: collection
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Execute schema modification commands
  - info:
      name: List all fields
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema/fields
      params:
      - name: collection
        value: ''
        type: path
      - name: includeDynamic
        value: ''
        type: query
      - name: showDefaults
        value: ''
        type: query
      - name: fl
        value: ''
        type: query
    docs: List all fields
  - info:
      name: Retrieve a field definition
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema/fields/:fieldname
      params:
      - name: collection
        value: ''
        type: path
      - name: fieldname
        value: ''
        type: path
    docs: Retrieve a field definition
  - info:
      name: List dynamic field rules
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema/dynamicfields
      params:
      - name: collection
        value: ''
        type: path
    docs: List dynamic field rules
  - info:
      name: List field types
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema/fieldtypes
      params:
      - name: collection
        value: ''
        type: path
    docs: List field types
  - info:
      name: List copy field rules
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema/copyfields
      params:
      - name: collection
        value: ''
        type: path
    docs: List copy field rules
  - info:
      name: Get the unique key field name
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/schema/uniquekey
      params:
      - name: collection
        value: ''
        type: path
    docs: Get the unique key field name
- info:
    name: Query
    type: folder
  items:
  - info:
      name: Execute a search query
      type: http
    http:
      method: GET
      url: http://{host}:{port}/solr/:collection/select
      params:
      - name: collection
        value: ''
        type: path
      - name: q
        value: ''
        type: query
        description: Solr query string
      - name: fq
        value: ''
        type: query
        description: Filter query
      - name: sort
        value: ''
        type: query
      - name: start
        value: ''
        type: query
      - name: rows
        value: ''
        type: query
      - name: fl
        value: ''
        type: query
      - name: wt
        value: ''
        type: query
    docs: Execute a search query
- info:
    name: Update
    type: folder
  items:
  - info:
      name: Index, update, or delete documents
      type: http
    http:
      method: POST
      url: http://{host}:{port}/solr/:collection/update
      params:
      - name: collection
        value: ''
        type: path
      - name: commit
        value: ''
        type: query
      body:
        type: json
        data: '{}'
    docs: Index, update, or delete documents
bundled: true