Szukaj…


Uwagi

Apache Lucene to oparta na Javie biblioteka wyszukiwania pełnotekstowego.

Wersje

Wersja Data wydania
2.9.4 03.12.2010
3.0.3 03.12.2010
3.6.2 16.01.2013
4.10.4 14.10.2015
5.5.2 24.06.2016
6.3.0 08.11.2016

Ustawiać

Lucene to biblioteka Java. Jeśli nie masz skonfigurowanego środowiska programistycznego Java, zapoznaj się z dokumentacją Java .

Pobierz najnowszą wersję Lucene ze strony Apache i rozpakuj ją.

Dodaj wymagane słoiki do ścieżki klasy. Następujące słoiki będą wymagane przez wiele projektów, w tym przykład Hello World tutaj:

  • core/lucene-core-6.1.0.jar : funkcjonalność Core Lucene.
  • core/analysis/common/lucene-analyzers-common-6.1.0.jar : Zapewnia różnorodność analizatorów, w tym wszechobecny StandardAnalyzer.
  • queryparser/lucene-queryparser-6.1.0.jar : Udostępnia analizator składni zapytań.

Umieść kod w HelloLucene.java . Skompiluj to za pomocą tego polecenia:

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

I uruchom go za pomocą tego polecenia:

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

Witaj świecie

Ten podstawowy przykład Lucene tworzy prosty indeks i wyszukuje go.

Uwaga: RAMDirectory tworzy indeks rezydujący w pamięci i jest przydatny do eksperymentowania i testowania, ale w praktyce większość ludzi będzie musiała mieć indeks przechowywany w systemie plików (patrz 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow