Natural Language Processing

Apache Lucene – full-featured text search engine library

Apache Lucene is an open source high-performance, full-featured information retrieval software library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.

Apache Lucene sets the standard for search and indexing performance. Lucene itself is just an indexing and search library and does not contain crawling and HTML parsing functionality.

It is supported by the Apache Software Foundation and is released under the Apache Software License. Lucene has been ported to other programming languages including Delphi, Perl, C#, C++, Python, Ruby, and PHP.

Key Features

  • Indexing:
    • Over 150GB/hour on modern hardware.
    • Small RAM requirements – only 1MB heap.
    • Incremental indexing as fast as batch indexing.
    • Index size roughly 20-30% the size of text indexed.
    • Static index pruning (Carmel pruning) removes postings with low within-document term frequency.
  • Search Algorithms:
    • Ranked searching – best results returned first.
    • Many powerful query types: phrase queries, wildcard queries, proximity queries, range queries and more.
    • Fielded searching (e.g. title, author, contents).
    • Sorting by any field.
    • Multiple-index searching with merged results.
    • Allows simultaneous update and searching.
    • Flexible faceting, highlighting, joins and result grouping.
    • Fast, memory-efficient and typo-tolerant suggesters.
    • Pluggable ranking models, including the Vector Space Model and Okapi BM25
    • configurable storage engine (codecs).
  • Cross-Platform Solution:
    • 100%-pure Java.
    • Implementations in other programming languages available that are index-compatible.

Website: lucene.apache.org/core
Support: Documentation
Developer: Apache Software Foundation
License: Apache License 2.0

Apache Lucene is written in Java. Learn Java with our recommended free books and free tutorials.


Related Software

Search Engines for Big Data
ElasticSearchFlexible and powerful distributed RESTful search engine and analytics
SolrSearch engine server that uses Lucene
LuceneSearch engine library
MeiliSearchEasy to use and deploy search engine
OpenSearchEnterprise-grade search and observability suite
SphinxSearch engine designed with indexing database content in mind
XapianProbabilistic information retrieval library
TypesenseFast, typo-tolerant search engine
Manticore SearchEasy to use fast database for search
VespaAI search platform
GroongaFulltext search engine and column store

Read our verdict in the software roundup.

Natural Language Processing
PyTorch-TransformersLibrary of state-of-the-art pre-trained models
Natural Language ToolkitSuite of open source Python modules, data sets and tutorials
Stanford CoreNLPExtensible annotation-based NLP pipeline
spaCyIndustrial strength natural language processing
scikit-learnMachine learning library for Python
GensimPython-based vector space modeling and topic modeling toolkit
flairSimple framework for state-of-the-art NLP
Apache OpenNLPMachine learning based toolkit
DL4JDeploy and train deep learning models
Apache LuceneFull-featured information retrieval software library
UIMAImplementation of the UIMA specification
tidytextText mining using dplyr, ggplot2, and other tidy tools
text2vecFramework with API for text analysis and NLP
quantedaR package for Quantitative Analysis of Textual Data
MosesStatistical machine translation system

Read our verdict in the software roundup.

Java Natural Language Processing Tools
CoreNLPAnnotation-based NLP pipeline that provides core natural language analysis
OpenNLPMachine learning based toolkit
DL4JDeploy and train deep learning models
LuceneHigh-performance, full-featured information retrieval software library
UIMAOpen source implementation of the UIMA specification
TikaContent analysis toolkit
MALLETStatistical natural language processing, document classification and more
CogComp-NLPState-of-the-art Natural Language Processing (NLP) tools
ReVerb Automatically identifies and extracts binary relationships from sentences
NLP4JNLP framework for JVM languages
GATEFull-lifecycle solution for a broad range of NLP tasks

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments