Ricerca…


Osservazioni

Apache Lucene è una libreria di ricerca full-text basata su Java.

Versioni

Versione Data di rilascio
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

Impostare

Lucene è una libreria Java. Se non si dispone già di un ambiente di sviluppo Java, consultare la documentazione Java .

Scarica l'ultima versione di Lucene dal sito Web di Apache e decomprimila.

Aggiungere i jar necessari al classpath. I seguenti vasi saranno richiesti da molti progetti, incluso l'esempio Hello World qui:

  • core/lucene-core-6.1.0.jar : funzionalità Core Lucene.
  • core/analysis/common/lucene-analyzers-common-6.1.0.jar : Fornisce una varietà di analizzatori, incluso l'onnipresente StandardAnalyzer.
  • queryparser/lucene-queryparser-6.1.0.jar : fornisce il parser di query.

Inserire il codice in HelloLucene.java . Compilalo con questo comando:

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

E eseguilo con questo comando:

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

Ciao mondo

Questo esempio di base di Lucene crea un indice semplice e cerca su di esso.

Nota: RAMDirectory crea un indice residente in memoria ed è utile per sperimentare e testare, ma in pratica molte persone avranno bisogno di avere un indice memorizzato nel file system (vedere 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow