<!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™ Tutorials</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/quickstart.html"/>
    <meta property="og:title" content="Lucene™ Tutorials"/>
    <meta property="og:description" content="A copy of the demo for each version of Lucene is included in the documentation for that release."/>
    <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>
  <div>
  <h1 class="title">Lucene™ Tutorials</h1>
  <p>A copy of the demo for each version of Lucene is included in the documentation for that release.</p>
</div>

  <p>The most recent versions can also be found online:</p>
  <ul>
    <li><a href="/core/9_10_0/demo/overview-summary.html#overview_description">Lucene 9.10.0 Demo</a></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>