Lucene 공식 간단 한 실례

더 읽 기
Lucene 은 자바 기반 의 전체 텍스트 정보 검색 도구 패키지 입 니 다.완전한 검색 프로그램 이 아니 라 응용 프로그램 에 색인 과 검색 기능 을 제공 합 니 다.루 센 은 현재 아파 치 가문 의 개원 프로젝트 다.현재 가장 유행 하 는 자바 오픈 소스 기반 전체 텍스트 검색 도구 패키지 이기 도 합 니 다.
 
공식 간단 한 예:버 전(lucene 4.1.0)
lucene-core-4.1.0.jar,lucene-analyzers-common-4.1.0.jar,lucene-queries-4.1.0.jar,lucene-queryparser-4.1.0.jar 가 져 오기
 
 
1.IndexWriter 에서 색인 을 만 드 는 클래스;
2.Indexsearcher 검색 색인 클래스
 
 
package com.mei.testlucene;

import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;

public class HelloLucene {
  public static void main(String[] args) throws IOException, ParseException {
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
		 // Store the index in memory:
	    Directory directory = new RAMDirectory();
	    // To store an index on disk, use this instead:
	    //Directory directory = FSDirectory.open(new File("H:/luceneIndex"));
	    IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
	    IndexWriter iwriter = new IndexWriter(directory, config);
	    Document doc = new Document();
	    String text = "This is the text to be indexed.";
	    doc.add(new Field("fieldname", text, TextField.TYPE_STORED));
	    iwriter.addDocument(doc);
	    iwriter.close();
	    System.out.println("     ok");
	    
	    // Now search the index:
	    DirectoryReader ireader = DirectoryReader.open(directory);
	    IndexSearcher isearcher = new IndexSearcher(ireader);
	    // Parse a simple query that searches for "text":
	    QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "fieldname", analyzer);
	    Query query = parser.parse("text");
	    ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
	    System.out.println(hits.length == 1);
	    // Iterate through the results:
	    for (int i = 0; i < hits.length; i++) {
	      Document hitDoc = isearcher.doc(hits[i].doc);
	      System.out.println(hitDoc.get("fieldname"));
	    }
	    ireader.close();
	    directory.close();
	}
}


 

좋은 웹페이지 즐겨찾기