lucene Tutoriel
Démarrer avec lucene
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 standardcore/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();
}
}