<!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™ Mailing Lists and IRC</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/discussion.html"/>
    <meta property="og:title" content="Lucene™ Mailing Lists and IRC"/>
    <meta property="og:description" content="Java User List: java-user@lucene.apache.org This list is for users of Java Lucene to ask questions, share knowledge, and discuss..."/>
    <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™ Mailing Lists and IRC</h1>
  <div class="toc">
    <div class="toc">
<ul>
<li><a href="#java-user-list-java-userluceneapacheorg">Java User List: java-user@lucene.apache.org</a></li>
<li><a href="#developer-lists">Developer Lists</a><ul>
<li><a href="#developer-discussion-devluceneapacheorg">Developer Discussion: dev@lucene.apache.org</a></li>
<li><a href="#issue-notifications-issueslucene">Issue Notifications: issues@lucene</a></li>
<li><a href="#build-notifications-buildslucene">Build Notifications: builds@lucene</a></li>
<li><a href="#commit-notifications-commitslucene">Commit Notifications: commits@lucene</a></li>
</ul>
</li>
<li><a href="#irc">IRC</a></li>
<li><a href="#slack">Slack</a></li>
<li><a href="#mail-archives">Mail Archives</a></li>
<li><a href="#retired-mailing-lists">Retired mailing lists</a></li>
</ul>
</div>
  </div>
  
<h2 id="java-user-list-java-userluceneapacheorg">Java User List: java-user@lucene.apache.org</h2>
<p>This list is for users of Java Lucene to ask questions, share knowledge,
and discuss issues. <strong>Do</strong> send mail to this list with usage and configuration questions and problems.  Also, please
send questions to this list to verify your problem before filing issues in JIRA.</p>
<ul>
<li>Subscribe: <a href="mailto:java-user-subscribe@lucene.apache.org">java-user-subscribe</a></li>
<li>Unsubscribe: <a href="mailto:java-user-unsubscribe@lucene.apache.org">java-user-unsubscribe</a></li>
<li>Send: <a href="mailto:java-user@lucene.apache.org">java-user</a> (Requires subscription)</li>
<li><a href="http://mail-archives.apache.org/mod_mbox/lucene-java-user/">Apache Archive</a></li>
</ul>
<h2 id="developer-lists">Developer Lists</h2>
<h3 id="developer-discussion-devluceneapacheorg">Developer Discussion: dev@lucene.apache.org</h3>
<p>This is the list where participating developers of the Java Lucene project meet
and discuss issues concerning Lucene internals, code changes/additions, etc.</p>
<p><strong><em>NOTE:</em></strong> <em>Please do not send mail to this list with usage questions or configuration
questions and problems; that is what the java-user mailing list is for.</em></p>
<ul>
<li>Subscribe: <a href="mailto:dev-subscribe@lucene.apache.org">dev-subscribe</a></li>
<li>Unsubscribe: <a href="mailto:dev-unsubscribe@lucene.apache.org">dev-unsubscribe</a></li>
<li>Send: <a href="mailto:dev@lucene.apache.org">dev</a> (Requires subscription)</li>
<li><a href="http://mail-archives.apache.org/mod_mbox/lucene-dev/">Apache Archive</a></li>
</ul>
<h3 id="issue-notifications-issueslucene">Issue Notifications: issues@lucene</h3>
<p>This is an automated announcement only list where notifications about all JIRA issues and Github pull requests are sent.</p>
<p>Subscribe: <a href="mailto:issues-subscribe@lucene.apache.org">issues-subscribe</a></p>
<p>Unsubscribe: <a href="mailto:issues-unsubscribe@lucene.apache.org">issues-unsubscribe</a></p>
<p><a href="http://mail-archives.apache.org/mod_mbox/lucene-issues/">Official Apache Archive</a></p>
<h3 id="build-notifications-buildslucene">Build Notifications: builds@lucene</h3>
<p>This is an automated announcement only list where notifications about all CI builds by Jenkins are sent.</p>
<p>Subscribe: <a href="mailto:builds-subscribe@lucene.apache.org">builds-subscribe</a></p>
<p>Unsubscribe: <a href="mailto:builds-unsubscribe@lucene.apache.org">builds-unsubscribe</a></p>
<p><a href="http://mail-archives.apache.org/mod_mbox/lucene-builds/">Apache Archive</a></p>
<h3 id="commit-notifications-commitslucene">Commit Notifications: commits@lucene</h3>
<p>This is an automated announcement only list where notifications about every Lucene commit are sent.</p>
<ul>
<li>Subscribe: <a href="mailto:commits-subscribe@lucene.apache.org">commits-subscribe</a></li>
<li>Unsubscribe: <a href="mailto:commits-unsubscribe@lucene.apache.org">commits-unsubscribe</a></li>
<li><a href="http://mail-archives.apache.org/mod_mbox/lucene-commits/">Apache Archive</a></li>
</ul>
<h2 id="irc">IRC</h2>
<p>There are two primary IRC channels dedicated to Lucene at <a href="http://freenode.net/">freenode.net</a>.</p>
<ul>
<li><strong>#lucene</strong> -- Channel for user questions</li>
<li><strong>#lucene-dev</strong> -- <a href="http://colabti.org/irclogger/irclogger_logs/lucene-dev">Logged Channel</a> for Lucene development questions</li>
</ul>
<p>The IRC channel can be used for online discussion about Lucene related stuff,
but developers should be careful to transfer all the official decisions or useful discussions to the issue tracking system.</p>
<h2 id="slack">Slack</h2>
<p>The project's Slack channel is the <strong>#lucene-dev</strong> channel in the <strong>the-asf</strong> organization. Link: <a href="https://the-asf.slack.com/messages/CE70MDPMF">https://the-asf.slack.com/messages/CE70MDPMF</a></p>
<h2 id="mail-archives">Mail Archives</h2>
<p>Use the Apache service <a href="https://lists.apache.org/list.html?dev@lucene.apache.org">Ponymail - lists.apache.org</a> to 
browse the mail archives of all the project's mailing lists.</p>
<h2 id="retired-mailing-lists">Retired mailing lists</h2>
<p>These lists are no longer in use, so we just provide a link to the archives.</p>
<ul>
<li><a href="http://mail-archives.apache.org/mod_mbox/lucene-general/">general@lucene.apache.org</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>