{% extends "lucene/tlp/page.html" %}

{% block content %}
{{ super() }}

<p>
  The Apache Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> project develops open-source search
  software. The project releases a core search library, named Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> core,
  as well as PyLucene, a python binding for Lucene.
</p>

<div id="col1">
  <p><a href="/core/">Lucene Core</a> is a Java library providing powerful indexing and search features,
  as well as spellchecking, hit highlighting and advanced analysis/tokenization capabilities. The <a href="/pylucene/">PyLucene</a>
    sub project provides Python bindings for Lucene Core.
  </p>
</div>
<div id="col2">
  <h2 id="lucene-core-news">Latest Lucene Core News</h2>
  <div>
    {% for article in (articles | selectattr("category.name", "eq", "core/news")|list)[:3] %}
    <p id="{{article.slug}}">
      <a href="/core/corenews.html#{{article.slug}}">{{article.title}}</a> <span class="news-date">({{ article.date | strftime("%d.%b") }})</span>
    </p>
    {% endfor %}
  </div>
</div>
<br clear="all"/>
<hr/>
<br clear="all"/>
<div>
  <p>
    <img src="/theme/images/solr/Solr_Logo_200x101.png" width="100" alt="Solr Logo" align="left" />
    The <a href="https://solr.apache.org/">Solr<span style="vertical-align: super; font-size: xx-small">TM</span></a>
    sub project was a part of Lucene TLP until February 2021. All things Solr have now moved to <a href="https://solr.apache.org/">https://solr.apache.org/</a>
  </p>
</div>
<br clear="all"/>
<hr/>
<br clear="all"/>

{% include "lucene/_asf.html" %}
{% endblock content %}
