Premiers pas avec lucène

Bonjour le monde

Cet exemple de base de Lucene crée un index simple et effectue une recherche dessus.

Remarque : RAMDirectory crée un index résident en mémoire et est pratique pour expérimenter et tester, mais en pratique, la plupart des gens auront besoin d’avoir un index stocké dans le système de fichiers (voir [FSDirectory.open](https://lucene.apache. org/core/6_1_0/core/org/apache/lucene/store/FSDirectory.html#open-java.nio.file.Path-)).

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();
    }
}

Installer

Lucene est une bibliothèque Java. Si vous n’avez pas encore configuré d’environnement de développement Java, consultez la documentation Java.

Téléchargez la dernière version de Lucene sur le site Web d’Apache et décompressez-la.

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

  • core/lucene-core-6.1.0.jar : fonctionnalité principale de Lucene.
  • core/analysis/common/lucene-analyzers-common-6.1.0.jar : Fournit une variété d’analyseurs, y compris l’omniprésent StandardAnalyzer.
  • 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 exécutez-le avec cette commande :

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