天天看點

lucene入門簡單的例子

package com.lzw.test;

import java.io.File;

import java.io.IOException;

import org.apache.lucene.analysis.standard.StandardAnalyzer;

import org.apache.lucene.document.Document;

import org.apache.lucene.document.Field.Store;

import org.apache.lucene.document.StringField;

import org.apache.lucene.document.TextField;

import org.apache.lucene.index.DirectoryReader;

import org.apache.lucene.index.IndexReader;

import org.apache.lucene.index.IndexWriter;

import org.apache.lucene.index.IndexWriterConfig;

import org.apache.lucene.index.Term;

import org.apache.lucene.search.IndexSearcher;

import org.apache.lucene.search.TermQuery;

import org.apache.lucene.search.TopDocs;

import org.apache.lucene.store.Directory;

import org.apache.lucene.store.FSDirectory;

import org.apache.lucene.util.Version;

public class LuceneTest {

public static void main(String[] args) throws IOException {

String ids[]={"1","2","3!"};

String context[]={"我是一個大菜鳥","你是一個好的程勳員","他是一個人人都愛的大美女!"};

String filePath="D://test/index";

//檔案存放位置

Directory directory=FSDirectory.open(new File(filePath));

//索引寫入配置類

IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_42, new StandardAnalyzer(Version.LUCENE_42));

IndexWriter indexWriter=new IndexWriter(directory, config);

for(int i=0;i<context.length;i++){

//建立文檔

Document document =new Document();

//stringfiele隻會索引但不會分詞

document.add(new StringField("id", ids[i], Store.YES));

//TextField既有索引又會分詞

document.add(new TextField("cont", context[i], Store.YES));

//為文檔寫入索引

indexWriter.addDocument(document);

}

 indexWriter.close();  

 System.out.println("資料初始化成功!");

//接下來做查詢

Directory dire=FSDirectory.open(new File(filePath));

IndexReader reader=DirectoryReader.open(dire);

IndexSearcher searcher=new IndexSearcher(reader);

//詞(cont是标,’一‘是内容) 

Term term=new Term("cont", "一");

//查詢這個詞

TermQuery query=new TermQuery(term);

//查詢前5條資料

TopDocs topDocs=searcher.search(query, 5);

System.out.println(topDocs.totalHits);

reader.close();

}

}

用到的jar包

lucene入門簡單的例子

 <dependencies>

<dependency>

   <groupId>org.apache.lucene</groupId>

   <artifactId>lucene-core</artifactId>

   <version>4.2.1</version>

</dependency>

<dependency>

   <groupId>org.apache.lucene</groupId>

   <artifactId>lucene-queryparser</artifactId>

   <version>4.2.1</version>

</dependency>

<dependency>

   <groupId>org.apache.lucene</groupId>

   <artifactId>lucene-analyzers-common</artifactId>

   <version>4.2.1</version>

</dependency>

  </dependencies>

因為是剛接觸lucene裡面可能很多錯誤的了解,還望多多指正。