<!doctype html>
<html>
  <head>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE- 2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<link href="/theme/css/lucene/global.css?v=0e493d7a" rel="stylesheet" type="text/css">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta name="Distribution" content="Global"/>
<meta name="Robots" content="index,follow"/>

<script type="text/javascript" src="/theme/javascript/lucene/prototype.js?v=0e493d7a"></script>
<script type="text/javascript" src="/theme/javascript/lucene/effects.js?v=0e493d7a"></script>
<script type="text/javascript" src="/theme/javascript/lucene/slides.js?v=0e493d7a"></script>
<script src="https://www.apachecon.com/event-images/snippet.js"></script>    <title>Apache Lucene - Lucene™ Features</title>
<meta name="keywords"
       content="apache, apache lucene, apache solr, solr, lucene
       search, information retrieval, spell checking, faceting, inverted index,
       open source"/>    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://lucene.apache.org/core/features.html"/>
    <meta property="og:title" content="Lucene™ Features"/>
    <meta property="og:description" content="Lucene offers powerful features through a simple API: Scalable, High-Performance Indexing over 800GB/hour on modern hardware small..."/>
    <meta property="og:image" content="https://lucene.apache.org/theme/images/lucene/lucene_og_image.png?v=0e493d7a"/>
    <meta property="og:image:secure_url" content="https://lucene.apache.org/theme/images/lucene/lucene_og_image.png?v=0e493d7a"/>
<link rel="shortcut icon" type="image/png"
                                                 href="/theme/images/lucene/lucene-favicon.png?v=0e493d7a"/><link href="/theme/css/lucene/core.css?v=0e493d7a" rel="stylesheet" type="text/css">
  </head>
  <body id="home">
    <div id="wrap">
      <div id="header">
        <div id="logo" style="float:left">
          <a href="/">
            <img border="0" src="/theme/images/lucene/lucene_logo_green_300.png?v=0e493d7a" alt="Lucene Logo"/>
          </a>
        </div>
<!-- TODO: Search disabled as it does not work, 2021-02-21
<div id="search" style="float:right;zoom:1">
  <form id="quick-search" method="GET" action="https://sematext.com/opensee/lucene" name="searchform">
    <fieldset>
      <input type="search" id="q" name="q" placeholder="Search with Apache Solr..." class="class1 class2 hint" accesskey="q">
    </fieldset>
  </form>
</div>-->
        <div id="nav">
          <ul>
<li><a href="/core/index.html">Core</a></li>
<li><a href="/core/corenews.html">News</a></li>
<li><a href="/core/downloads.html">Download</a></li>
<li><a href="/core/discussion.html">Mailing Lists</a></li>
<li><a href="/core/documentation.html">Documentation</a></li>
<li><a href="/core/quickstart.html">Tutorials</a></li>
<li><a href="https://github.com/apache/lucene/issues">Issue Tracker</a></li>
<li><a class="last" href="/">Lucene TLP</a></li>
          </ul>
        </div>

<div id="slides">
  <div class="slideshow" id="mantleSlides">
<div id="slide1">
  <div class="callout">
    Ultra-fast Search Library<br/>
  </div>
  <div class="descwrapper">
    <div class="description">
      Apache Lucene sets the standard for search and indexing performance
    </div>
  </div>
  <div class="mantle">
    <img alt="Apache Lucene" src="/theme/images/lucene/core/mantle-lucene.png?v=0e493d7a"/>
  </div>
</div>
<div id="slide2" style="display:none">
  <div class="callout">
    Proven search capabilities<br/>
  </div>
  <div class="descwrapper">
    <div class="description">
      Lucene is the de facto standard for search libraries
    </div>
  </div>
  <div class="mantle">
    <img alt="Lucene Power" src="/theme/images/lucene/mantle-power.png?v=0e493d7a"/>
  </div>
</div>
<div id="slide3" style="display:none">
  <div class="callout">
    Innovation and Maturity
  </div>
  <div class="descwrapper">
    <div class="description">
      Lucene has proven stability as well as a track record of innovation
    </div>
  </div>
  <div class="mantle">
    <img alt="Apache Lucene" src="/theme/images/lucene/core/mantle-innovation.png?v=0e493d7a"/>
  </div>
</div>
<div id="slide4" style="display:none">
  <div class="callout">
    Apache 2.0 licensed
  </div>
  <div class="descwrapper">
    <div class="description">
      Apache Lucene is distributed under a commercially friendly Apache Software license
    </div>
  </div>
  <div class="mantle">
    <img alt="Apache Software Foundation" src="/theme/images/lucene/mantle-asf.png?v=0e493d7a"/>
  </div>
</div>  </div>
  <div class="controls">
    <a class="next" id="next" title="Next" href="#">Next</a>
    <a class="previous" id="previous" title="Previous" href="#">Previous</a>
    <a class="start" id="start" title="Start" href="#" style="display: none; ">Start</a>
    <a class="stop" id="stop" title="Stop" href="#">Stop</a>
  </div>

  <script type="text/javascript">
    function StartSlides() {
      new Slides('mantleSlides');
    }
document.observe('dom:loaded', StartSlides);
  </script>
</div> <!-- End #slides -->
      </div> <!-- End #header -->

      <div id="content-wrap" class="clearfix">
        <div id="main">
<div>
  <h1 class="title">Lucene™ Features</h1>
  <p>Lucene offers powerful features through a simple API:</p>
<h2 id="scalable-high-performance-indexing">Scalable, High-Performance Indexing</h2>
<ul>
<li>over <a href="http://home.apache.org/~mikemccand/lucenebench/indexing.html">800GB/hour on modern hardware</a></li>
<li>small RAM requirements -- only 1MB heap</li>
<li>incremental indexing as fast as batch indexing</li>
<li>index size roughly 20-30% the size of text indexed</li>
</ul>
<h2 id="powerful-accurate-and-efficient-search-algorithms">Powerful, Accurate and Efficient Search Algorithms</h2>
<ul>
<li>ranked searching -- best results returned first</li>
<li>many powerful query types: phrase queries, wildcard queries, proximity queries, range queries and more</li>
<li>fielded searching (e.g. title, author, contents)</li>
<li>nearest-neighbor search for high-dimensionality vectors</li>
<li>sorting by any field</li>
<li>multiple-index searching with merged results</li>
<li>allows simultaneous update and searching</li>
<li>flexible faceting, highlighting, joins and result grouping</li>
<li>fast, memory-efficient and typo-tolerant suggesters</li>
<li>pluggable ranking models, including the <a href="http://en.wikipedia.org/wiki/Vector_Space_Model">Vector Space Model</a> and <a href="http://en.wikipedia.org/wiki/Okapi_BM25">Okapi BM25</a></li>
<li>configurable storage engine (codecs)</li>
</ul>
<h2 id="cross-platform-solution">Cross-Platform Solution</h2>
<ul>
<li>Available as Open Source software under the <a href="https://www.apache.org/licenses/LICENSE-2.0.html">Apache License</a> which lets you use Lucene in both commercial and Open Source programs</li>
<li>100%-pure Java</li>
<li>Implementations in <a href="https://cwiki.apache.org/confluence/display/lucene/LuceneImplementations">other programming languages available</a> that are index-compatible</li>
</ul>
<h2 id="utility-tools">Utility tools</h2>
<ul>
<li>integrated desktop GUI tool (Luke): a utility for browsing, searching and maintaining indexes and documents. It can be started with "bin/luke.{sh|cmd}".</li>
</ul>
</div>
        </div>
        <div id="sidebar">
<div class="button-wrapper">
  <div class="button-green">
    <a href="/core/downloads.html">Download</a>
    <div class="flap top">Click to</div>
    <div class="flap bottom">Apache Lucene 9.10.0</div>
  </div>
  <div class="download-desc">Apache Lucene 9.10.0</div>
</div>

<h1 id="resources">Resources</h1>
<ul>
  <li><a href="/core/discussion.html">Mailing Lists</a></li>
  <li><a href="/core/developer.html">Developer</a></li>
  <li><a href="/core/features.html">Features</a></li>
  <li><a href="/core/downloads.html">Releases</a></li>
  <li><a href="/core/systemreqs.html">System Requirements</a></li>
</ul>

<h1 id="release-docs">Release Docs</h1>
<ul>
  <li><a href="/core/9_10_0/index.html">9.10.0</a></li>
</ul>

<h1 id="about">About</h1>
<ul>
  <li><a href="https://www.apache.org/licenses/">License</a></li>
  <li><a href="/whoweare.html">Who We are</a></li>
</ul>

<h1 id="events">Events</h1>
<ul>
  <a class="acevent" data-format="square" data-mode="light" data-width="160" data-style="border: 1px solid lightgrey"></a>
</ul>

<h1 id="asf-links">ASF links</h1>
<ul>
  <li><a href="https://www.apache.org">Apache Software Foundation</a></li>
  <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
  <li><a href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
  <li><a href="https://www.apache.org/security/">Security</a></li>
</ul>

<h1 id="related-projects">Related Projects</h1>
<ul>
  <li><a href="https://solr.apache.org">Apache Solr</a></li>
  <li><a href="http://hadoop.apache.org">Apache Hadoop</a></li>
  <li><a href="http://manifoldcf.apache.org/">Apache ManifoldCF</a></li>
  <li><a href="http://lucenenet.apache.org/">Apache Lucene.Net</a></li>
  <li><a href="http://mahout.apache.org">Apache Mahout</a></li>
  <li><a href="http://nutch.apache.org">Apache Nutch</a></li>
  <li><a href="http://opennlp.apache.org/">Apache OpenNLP</a></li>
  <li><a href="http://tika.apache.org">Apache Tika</a></li>
  <li><a href="http://zookeeper.apache.org">Apache Zookeeper</a></li>
</ul>

<div class="status">
  <!-- No SVN anymore; TODO: how to do Git? INFRA does not have a plugin!
    <div id="svn"></div>
  -->
</div>        </div>
      </div> <!-- End #content-wrap -->

<div id="footer">
  <div class="copyright">
    <p>
      Copyright &copy; 2011-2024 The Apache Software Foundation, Licensed under
      the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.  <a href="/privacy.html">Privacy Policy</a>      <br/>
      Apache and the Apache feather logo are trademarks of The Apache Software Foundation.  Apache Lucene, Apache Solr and their
      respective logos are trademarks of the Apache Software Foundation.  Please see the <a href="https://www.apache.org/foundation/marks/">Apache Trademark Policy</a>
      for more information.
    </p>
  </div>
</div>    </div> <!-- End #wrap -->
  </body>
</html>