Recherche…


Remarques

Apache Lucene est une bibliothèque de recherche en texte intégral basée sur Java.

Versions

Version Date de sortie
2.9.4 2010-12-03
3.0.3 2010-12-03
3.6.2 2013-01-16
4.10.4 2015-10-14
5.5.2 2016-06-24
6.3.0 2016-11-08

Installer

Lucene est une bibliothèque Java. Si vous ne disposez pas déjà d'un environnement de développement Java, consultez la documentation Java .

Téléchargez la dernière version de Lucene à partir du site Web Apache et décompressez-la.

Ajoutez les jars requis à votre chemin de classe. Les jars suivants seront requis par de nombreux projets, y compris l'exemple Hello World ici:

  • core/lucene-core-6.1.0.jar : fonctionnalité Core Lucene.
  • core/analysis/common/lucene-analyzers-common-6.1.0.jar : fournit une variété d'analyseurs, y compris le standard core/analysis/common/lucene-analyzers-common-6.1.0.jar .
  • queryparser/lucene-queryparser-6.1.0.jar : fournit l'analyseur de requête.

Placez le code dans HelloLucene.java . Compilez-le avec cette commande:

javac -classpath "core/*:queryparser/*" HelloLucene.java

Et lancez-le avec cette commande:

java -classpath ".:core/*:queryparser/*" HelloLucene

Bonjour le monde

Cet exemple de base de Lucene crée un index simple et y recherche.

Remarque: RAMDirectory crée un index résidant en mémoire, ce qui est pratique pour l'expérimentation et le test, mais dans la pratique, la plupart des utilisateurs devront avoir un index stocké dans le système de fichiers (voir FSDirectory.open ).

import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.index.*;
import org.apache.lucene.queryparser.classic.*;
import org.apache.lucene.search.*;
import org.apache.lucene.store.*;

public class HelloLucene {
    public static void main(String[] args) throws IOException, ParseException
    {
        //Create a new index and open a writer
        Directory dir = new RAMDirectory();
        Analyzer analyzer = new StandardAnalyzer();
        IndexWriterConfig config = new IndexWriterConfig(analyzer);
        IndexWriter writer = new IndexWriter(dir, config);
    
        //Create a document to index
        Document doc = new Document();
        doc.add(new TextField("text", "Hello World!", Field.Store.YES));
    
        //Index the document and close the writer
        System.out.println("Indexing document: " + doc);
        writer.addDocument(doc);
        writer.close();
    
        //Open an IndexSearcher
        IndexReader reader = DirectoryReader.open(dir);
        IndexSearcher searcher = new IndexSearcher(reader);
    
        //Create a query
        QueryParser parser = new QueryParser("text", analyzer);
        Query query = parser.parse("world");
    
        //Search for results of the query in the index
        System.out.println("Searching for: \"" + query + "\"");
        TopDocs results = searcher.search(query, 10);
        for (ScoreDoc result : results.scoreDocs) {
            Document resultDoc = searcher.doc(result.doc);
            System.out.println("score: " + result.score + 
                    " -- text: " + resultDoc.get("text"));
        }
        reader.close();
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow