# Apache Lucene™ 10.5.1 Documentation

Lucene is a Java full-text search engine. Lucene is not a complete application, but rather a code library and API that can easily be used to add search capabilities to applications.

This is the official documentation for Apache Lucene 10.5.1. Additional documentation is available in the Wiki.

## Getting Started

The following section is intended as a "getting started" guide. It has three audiences: first-time users looking to install Apache Lucene in their application; developers looking to modify or base the applications they develop on Lucene; and developers looking to become involved in and contribute to the development of Lucene. The goal is to help you "get started". It does not go into great depth on some of the conceptual or inner details of Lucene:

- Lucene demo, its usage, and sources: Tutorial and walk-through of the command-line Lucene demo.
- Introduction to Lucene's APIs: High-level summary of the different Lucene packages.
- Analysis overview: Introduction to Lucene's analysis API. See also the TokenStream consumer workflow.

## Reference Documents

- Changes: List of changes in this release.
- System Requirements: Minimum and supported Java versions.
- Migration Guide: What changed in Lucene 10; how to migrate code from Lucene 9.x.
- JRE Version Migration: Information about upgrading between major JRE versions.
- File Formats: Guide to the supported index format used by Lucene. This can be customized by using an alternate codec.
- Search and Scoring in Lucene: Introduction to how Lucene scores documents.
- Classic Scoring Formula: Formula of Lucene's classic Vector Space implementation (look here for other models).
- Classic QueryParser Syntax: Overview of the Classic QueryParser's syntax and features.

## API Javadocs

- core: Lucene core library
- analysis-common: Analyzers for indexing content in different languages and domains
- analysis-icu: Analysis integration with ICU (International Components for Unicode)
- analysis-kuromoji: Japanese Morphological Analyzer
- analysis-morfologik: Analyzer for dictionary stemming, built-in Polish dictionary
- analysis-nori: Korean Morphological Analyzer
- analysis-opennlp: OpenNLP Library Integration
- analysis-phonetic: Analyzer for indexing phonetic signatures (for sounds-alike search)
- analysis-smartcn: Analyzer for indexing Chinese
- analysis-stempel: Analyzer for indexing Polish
- backward-codecs: Codecs for older versions of Lucene
- benchmark: Lucene benchmarking module
- classification: Classification module for Lucene
- codecs: Lucene codecs and postings formats
- demo: Simple example code for Apache Lucene
- expressions: Dynamically computed values to sort/facet/search on based on a pluggable grammar
- facet: Faceted indexing and search capabilities
- grouping: Collectors for grouping search results
- highlighter: Highlights search keywords in results
- join: Index-time and Query-time joins for normalized content
- memory: Single-document in-memory index implementation
- misc: Index tools and other miscellaneous code
- monitor: Reverse-search implementation for monitoring and classification
- queries: Filters and Queries that add to core Lucene
- queryparser: Query parsers and parsing framework
- replicator: Lucene index files replication utility
- sandbox: Various third party contributions and new ideas
- spatial-extras: Geospatial search
- spatial3d: 3D spatial planar geometry APIs
- suggest: Auto-suggest and Spellchecking support
- test-framework: Framework for testing Lucene-based applications

## Tools

- Luke - Lucene Toolbox GUI tool: A Swing app for browsing documents, indexed terms and posting lists, searching an index, and so on. Type "/path/to/lucene-10.5.1/bin/luke.{sh|cmd}" to launch Luke.