<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!-- Content Stylesheet for Site -->

        
<!-- start the processing -->
    <!-- ====================================================================== -->
    <!-- Main Page Section -->
    <!-- ====================================================================== -->
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

                                                    <meta name="author" value="Ted Husted">
            <meta name="email" value="husted@apache.org">
            
            <title>Jakarta Lucene - Features - Jakarta Lucene</title>
        </head>

        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
            <table border="0" width="100%" cellspacing="0">
                <!-- TOP IMAGE -->
                <tr>
                    <td align="left">
<a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
</td>
<td align="right">
<a href="http://jakarta.apache.org/lucene/docs/"><img src="./images/lucene_green_300.gif" alt="Jakarta Lucene" border="0"/></a>
</td>
                </tr>
            </table>
            <table border="0" width="100%" cellspacing="4">
                <tr><td colspan="2">
                    <hr noshade="" size="1"/>
                </td></tr>
                
                <tr>
                    <!-- LEFT SIDE NAVIGATION -->
                    <td width="20%" valign="top" nowrap="true">
                                <p><strong>About</strong></p>
        <ul>
                    <li>    <a href="./index.html">Overview</a>
</li>
                    <li>    <a href="./features.html">Features</a>
</li>
                    <li>    <a href="./applications.html">Applications</a>
</li>
                    <li>    <a href="./background.html">Background</a>
</li>
                </ul>
            <p><strong>Documentation</strong></p>
        <ul>
                    <li>    <a href="http://www.lucene.com/cgi-bin/faq/faqmanager.cgi">FAQs</a>
</li>
                    <li>    <a href="../api/overview.html">Javadoc</a>
</li>
                </ul>
            <p><strong>Download</strong></p>
        <ul>
                    <li>    <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
</li>
                </ul>
            <p><strong>Community</strong></p>
        <ul>
                    <li>    <a href="./whoweare.html">Who We Are</a>
</li>
                    <li>    <a href="./powered.html">Powered by Lucene</a>
</li>
                    <li>    <a href="./resources.html">Resources</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/bugs.html">Bugs</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a>
</li>
                </ul>
            <p><strong>Jakarta</strong></p>
        <ul>
                    <li>    <a href="http://jakarta.apache.org/site/acknowledgements.html">Acknowledgements</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/contact.html">Contact</a>
</li>
                    <li>    <a href="http://jakarta.apache.org/site/legal.html">Legal</a>
</li>
                </ul>
                        </td>
                    <td width="80%" align="left" valign="top">
                                                                    <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="#525D76">
        <font color="#ffffff" face="arial,helvetica,sanserif">
          <a name="FEATURES"><strong>FEATURES</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <h3>Lucene offers powerful features through a simple API</h3>
                            </blockquote>
        </p>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="#525D76">
        <font color="#ffffff" face="arial,helvetica,sanserif">
          <a name="Scalable, High-Performance Indexing"><strong>Scalable, High-Performance Indexing</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <ul>
<li>over 200MB/hour on Pentium II/266<br /></li>
<li>incremental indexing as fast as batch indexing</li>
<li>small RAM requirements -- only 1MB heap</li>
<li>index size roughly 30% the size of text indexed</li>
</ul>
                            </blockquote>
        </p>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="#525D76">
        <font color="#ffffff" face="arial,helvetica,sanserif">
          <a name="Powerful, Accurate and Efficient Search Algorithms"><strong>Powerful, Accurate and Efficient Search Algorithms</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <ul>
<li>ranked searching -- best results returned first</li>
<li>boolean and phrase queries</li>
<li>fielded searching (e.g., title, author, contents)</li>
<li>date-range searching</li>
<li>multiple-index searching with merged results</li>
</ul>
                            </blockquote>
        </p>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="#525D76">
        <font color="#ffffff" face="arial,helvetica,sanserif">
          <a name="Simple API's allow developers to ..."><strong>Simple API's allow developers to ...</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <ul>
<li>incorporate new document types</li>
<li>localize for new languages (already handles most European languages)</li>
<li>develop new user interfaces</li>
</ul>
                            </blockquote>
        </p>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="#525D76">
        <font color="#ffffff" face="arial,helvetica,sanserif">
          <a name="Cross-Platform Solution"><strong>Cross-Platform Solution</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <ul>
<li>100%-pure Java</li>
</ul>
                            </blockquote>
        </p>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                        </td>
                </tr>

                <!-- FOOTER -->
                <tr><td colspan="2">
                    <hr noshade="" size="1"/>
                </td></tr>
                <tr><td colspan="2">
                    <div align="center"><font color="#525D76" size="-1"><em>
                    Copyright &#169; 1999-2001, Apache Software Foundation
                    </em></font></div>
                </td></tr>
            </table>
        </body>
    </html>
<!-- end the processing -->














