<!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 - Code of Conduct</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/code-of-conduct.html"/>
    <meta property="og:title" content="Code of Conduct"/>
    <meta property="og:description" content="For a large and diverse community like ours to be friendly, welcoming and respectful, we recognize the need for some guidelines. The..."/>
    <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"/>  </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/">Core (Java)</a></li>
<li><a class="last" href="/pylucene/index.html">PyLucene</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 set the standard for search and indexing performance.
      Lucene is the search core of both Apache Solr™ and Elasticsearch™.
    </div></div>
    <div class="mantle">
      <img alt="Apache Lucene" src="/theme/images/lucene/tlp/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">
      Our core algorithms along with the Solr search server power applications the world over, ranging
      from mobile devices to sites like Twitter, Apple and Wikipedia.
    </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">
    Large, Vibrant community
  </div>
  <div class="descwrapper"><div class="description">
      The goal of Apache Lucene is to provide world class search capabilities
    </div></div>
    <div class="mantle">
      <img alt="Apache Mahout community" src="/theme/images/lucene/tlp/mantle-community.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">Code of Conduct</h1>
  <p>For a large and diverse community like ours to be friendly, welcoming and respectful, we recognize the need for some guidelines. The project follows <a href="https://www.apache.org/foundation/policies/conduct">Apache's Code of Conduct statement</a>. Please take some time to read and understand it.</p>
<p>If you feel there has been a violation of this code, please point out your concerns publicly in a friendly and matter of fact manner. Nonverbal communication is prone to misinterpretation and misunderstanding. Everyone has bad days and sometimes says things they regret later. Someone else's communication style may clash with yours, but the difference can be amicably resolved. After pointing out your concerns please be generous upon receiving an apology.</p>
<p>Should there be repeated instances of code of conduct violations, or if there is an obvious and severe violation, the Lucene PMC may become involved.</p>
<h2 id="mailing-list-etiquette">Mailing list etiquette</h2>
<p>Written communication is hard and prone to misunderstandings. We recommend reading <a href="https://community.apache.org/contributors/etiquette">ComDev's etiquette page</a> for some practical tips on how to improve.</p>
<h2 id="the-apache-way">The Apache Way</h2>
<p>As an Apache project we strive to follow <a href="http://theapacheway.com/">The Apache Way</a>. If you are new to the community or to open source in general, you may benefit from understanding our core values as a community, and why we operate the way we do. </p>
</div>
        </div>
        <div id="sidebar">
<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>

<h1 id="projects">Projects<a class="headerlink" href="#projects" title="Permanent link">¶</a></h1>
<ul>
  <li><a href="/core/">Lucene Core (Java)</a></li>
  <li><a href="/pylucene/">PyLucene</a></li>
  <li><a href="/openrelevance/">Open Relevance (Discontinued)</a></li>
</ul>

<h1 id="about">About<a class="headerlink" href="#about" title="Permanent link">¶</a></h1>
<ul>
  <li><a href="https://www.apache.org/licenses/">License</a></li>
  <li><a href="/whoweare.html">Who We are</a></li>
  <li><a href="/news.html">TLP News</a></li>
  <li><a href="/code-of-conduct.html">Code of Conduct</a></li>
</ul>

<h1 id="events">Events<a class="headerlink" href="#events" title="Permanent link">¶</a></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<a class="headerlink" href="#asf-links" title="Permanent link">¶</a></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="editing-this-site">Editing This Site<a class="headerlink" href="#editing-this-site" title="Permanent link">¶</a></h1>
<ul>
  <li><a href="site-instructions.html">Instructions</a></li>
  <li><a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a></li>
</ul>

<h1 id="related-projects">Related Projects<a class="headerlink" href="#related-projects" title="Permanent link">¶</a></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>
      </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>