<!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">
                                        <meta name="author" value="Doug Cutting">
            <meta name="email" value="cutting@apache.org">
            
            <title>Jakarta Lucene - Who We Are - 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/"><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="./powered.html">Powered by Lucene</a>
</li>
                    <li>    <a href="./whoweare.html">Who We Are</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>
                </ul>
            <p><strong>Documentation</strong></p>
        <ul>
                    <li>    <a href="http://www.lucene.com/cgi-bin/faq/faqmanager.cgi">FAQ</a>
</li>
                    <li>    <a href="./resources.html">Articles</a>
</li>
                    <li>    <a href="./api/index.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>Jakarta</strong></p>
        <ul>
                    <li>    <a href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a>
</li>
                    <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="Who We Are"><strong>Who We Are</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <p>Lucene is maintained by a team of volunteer developers.</p>
                            </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="Committers"><strong>Committers</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <ul>
<li><b>Doug Cutting</b> (cutting at apache.org)

<p>Lucene was originally written in Doug's spare time during late 1997
and early 1998.  Doug had previously written search engines at Xerox's
Palo Alto Research Center (PARC), Apple, and Excite@Home, and authored
several information retrieval <a href="http://www.lucene.com/publications.html">papers and
patents</a>.</p>

<p>Doug currently works for <a href="http://www.grandcentral.com/">Grand
Central</a>.</p>

<p>Please do not email Doug directly about Lucene. Instead use
the <a href="http://jakarta.apache.org/site/mail.html">Jakarta-Lucene mailing lists</a>.</p>

</li>
<li><b>Otis Gospodnetic</b> (otis at apache.org)</li>
<li><b>Brian Goetz</b> (briangoetz at apache.org)</li>
<li><b>Scott Ganyo</b> (scottganyo at apache.org)</li>
<li><b>Eugene Gluzberg</b> (drag0n at apache.org)</li>
<li><b>Matt Tucker</b> (mtucker at apache.org)</li>
<li><b>Cory Hubert</b> (clhubert at apache.org)</li>
<li><b>Dave Kor</b> (davekor at apache.org)</li>
<li><b>Jon Stevens</b> (jon at latchkey.com)</li>
<li><b>Tal Dayan</b> (zapta at apache.org)</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="Other Contributors"><strong>Other Contributors</strong></a>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <ul>
<li>Josh Bloch</li>
<li>Ted Husted</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 -->














