Apache Solr

repository·main·Indexed 11 days ago

https://github.com/apache/solr

A high-performance, open-source search platform built on Apache Lucene, supporting full-text, vector, and geospatial search. This documentation covers developer workflows, including building from source with Gradle, deploying via Docker and Kubernetes, and using developer scripts for release management, module scaffolding, and JMH benchmarking.

Tokens
202.4K
Snippets
626
Records
955
Agent score
69%

What's inside Solr

  1. Overview of the cuVS module for GPU-accelerated vector search

    main

    The cuVS module in Apache Solr provides specialized codecs that enable GPU-based accelerated vector search capabilities. This allows for high-performance dense vector similarity searches by offloading computations to a GPU.

    CAUTION

    This feature is currently experimental.

  2. Overview of Apache Solr Learning to Rank (LTR)

    main

    Apache Solr Learning to Rank (LTR) is a module that enables feature extraction and model deployment within Solr. It allows you to:

    1. Extract features directly inside Solr to be used as input for training machine learning models.
    2. Deploy trained models back into Solr to rerank the top $X$ search results based on the model's predictions.
  3. Overview of Apache Solr Cross Datacenter Replication Manager

    main
    The Apache Solr Cross Datacenter Replication Manager (solr-cross-dc-manager) is a tool designed to manage indexing operations across multiple Solr Clouds located in different datacenters. It provides a reliable mechanism to ensure that data is indexed consistently across geographically distributed Solr environments.
  4. Overview of Apache Solr Content Extraction (Solr Cell)

    main
    Apache Solr Extraction (also known as Solr Cell) is a module designed to extract and index content from "rich" documents, such as Microsoft Word and Adobe PDF files. It leverages Apache Tika to perform the actual extraction of content and metadata from these files, allowing the extracted data to be indexed within Solr.
  5. Overview of Solr learning paths

    main

    The Solr tutorials provide a progressive learning path for developers. The sequence typically includes:

    1. Basic Indexing & Search: Starting Solr, creating collections, indexing documents, and performing basic searches.
    2. Faceting: Working with different datasets to explore requesting facets.
    3. Custom Data: Implementing plans for your own specific data implementations.
    4. Advanced Features:
      • ParamSets: Managing query parameters.
      • Vector Search: Performing similarity searches.
      • OpenNLP: Using sentiment analysis.
      • SolrCloud: Managing distributed Solr.
      • AWS: Deploying Solr to Amazon Web Services.
      • Spatial Queries: Using geospatial support for distance ranges, bounding boxes, sorting by distance, or distance-based boosting.
  6. Overview of Apache Solr features

    main

    Apache Solr is an open-source, multi-modal search platform built on Apache Lucene. It is designed to run as a standalone full-text search server and provides high-performance capabilities for various search types and data processing tasks.

    Core Capabilities:

    • Search Types: Full-text, vector, analytics, and geospatial search.
    • Advanced Features: Streaming, highlighting, faceting, and spellchecking.
    • Deployment: Native integration with Docker and Kubernetes.
    • Extensibility: Extensive plugin architecture for advanced customization.
    • Interface: REST-like JSON APIs, allowing integration with virtually any programming language without requiring Java-specific client code.
  7. Overview of Apache Solr capabilities

    main

    Apache Solr is a search server built on Apache Lucene designed for document retrieval and analytical applications. It handles unstructured, semi-structured, and structured data.

    Key capabilities include:

    • Advanced Querying: Supports simple keyword searches, complex multi-field queries, and faceted search.
    • Result Manipulation: Features for collapsing and clustering results, which are useful for e-commerce storefronts.
    • Analytics: Uses Streaming expressions for corpus-wide analytics and Math expressions for advanced predictive analytics.
    • Relevancy Tuning: Provides access to Lucene's text analysis (tokenization, stemming, synonyms) and supports Learning to Rank via machine learning.
    • Scalability: Supports sharding and replication for high availability and performance. Scaling can be managed via Apache Zookeeper (the most scalable option) or through direct administrator management.
  8. Use the Solr SQL Module

    main

    The Solr SQL Module allows you to execute SQL queries against Solr collections, combining SQL syntax with Solr's full-text search capabilities. It supports both MapReduce-style and JSON Facet API aggregations to handle high query volume and high cardinality data.

    To use this feature, the sql module must be enabled in your Solr configuration. The interface translates SQL queries into physical query plans using the Apache Calcite engine, which are then implemented via Solr Streaming Expressions.

  9. Configure Metrics Reporting and Monitoring in Solr 10

    main

    Solr 10 provides two primary methods for collecting performance metrics: a pull-based Prometheus-formatted API and an OTLP push exporter.

    Important Notes:

    • Solr 10 metrics are currently in Beta and may change in minor releases.
    • Metrics are not persisted across process restarts.
    • Metrics only appear if the triggering event has occurred.
    • Metrics include attributes/labels for aggregation and descriptions for clarity.

    Aggregation Strategy: Solr provides raw data (Counters and Histograms). You should use a monitoring backend (like Prometheus or Grafana) to calculate rates, averages, and percentiles (p50, p95, etc.) to reduce load on Solr.

  10. Understand the Apache Solr binary distribution structure

    main

    A standard Apache Solr binary distribution contains the following key directories and files:

    • bin/: Contains scripts used to startup, manage, and interact with Solr instances.
    • server/: A self-contained Solr instance including sample configurations and documents. Use bin/solr start --help for details on starting the server.
    • example/: Contains example documents and an alternative Solr home directory with various examples.
    • modules/: (Not in "slim" releases) Contains modules to extend Solr functionality. Libraries are located in modules/*/lib.
    • cross-dc-manager/: (Not in "slim" releases) A standalone application under bin/ for managing Cross-Datacenter indexing across SolrClouds.
    • docker/: Contains a Dockerfile for building images from source or binary distributions. Scripts for managing the Docker image are in docker/scripts.
  11. Access Solr developer resources

    main

    For developers working on the Solr codebase, information is distributed across several locations:

    • Gradle Command Help: Detailed documentation for Gradle commands used in the build process is located in the help/ directory as .txt files.
    • Dependency and Licensing Management: Instructions for adding new dependencies and managing related licensing requirements are found in /solr/licenses/README.committers.txt.
    • Development Tools: A collection of tools specifically for Solr development is available in the /dev-tools directory.
    • End-User Documentation: For general usage, configuration, and API references, refer to the Solr Reference Guide.