Package Cn.dyg.luence;import Org.apache.lucene.analysis.standard.standardanalyzer;import Org.apache.lucene.document.document;import Org.apache.lucene.document.field;import Org.apache.lucene.index.indexreader;import Org.apache.lucene.index.indexwriter;import Org.apache.lucene.index.indexwriterconfig;import Org.apache.lucene.queryparser.parseexception;import Org.apache.lucene.queryparser.queryparser;import Org.apache.lucene.search.indexsearcher;import Org.apache.lucene.search.query;import Org.apache.lucene.search.scoredoc;import Org.apache.lucene.search.TopDocs; Import Org.apache.lucene.store.directory;import Org.apache.lucene.store.fsdirectory;import Org.apache.lucene.util.version;import Org.slf4j.logger;import Org.slf4j.loggerfactory;import Java.io.File;import Java.io.filereader;import java.io.ioexception;/** * Created by Administrator on 2016/11/2. */public class Indexutil {private static final Logger Logger = Loggerfactory.getlogger (Indexutil.class); private static Final String Indexpath = "E:\\javaweb\\luencerepository\\index"; Private Indexutil () {} public static Indexreader Getindexreader () {Logger.info ("This is the Indexreader ..."); return null; } public static void Setindexwriter () {//1 created directory//directory directory = new ramdirectory (); Index is built in memory directory directory = NULL; Index is built on disk try {directory = Fsdirectory.open (new File (Indexpath)); } catch (IOException e) {e.printstacktrace (); }//2 Create IndexWriter indexwriterconfig indexwriterconfig = new Indexwriterconfig (version.lucene_35, New Stand Ardanalyzer (version.lucene_35)); IndexWriter indexwriter = null; try {indexwriter = new IndexWriter (directory, indexwriterconfig); 3 Creating a Document object documents = NULL; 4 Add filed file FileList = new file ("E:\\javaweb\\luencerepository\\example") for the document; for (File File:fiLelist.listfiles ()) {document = new document (); Document.add (New Field ("Content", new FileReader (file)); Document.add (New Field ("name", File.getname (), Field.Store.YES, Field.Index.NOT_ANALYZED)); Document.add (New Field ("Path", File.getabsolutepath (), Field.Store.YES, Field.Index.NOT_ANALYZED)); 5 adding documents to the index by IndexWriter indexwriter.adddocument (document); }} catch (IOException e) {e.printstacktrace (); } finally {if (IndexWriter! = null) {try {indexwriter.close (); } catch (IOException e) {e.printstacktrace (); }}}} public static void Search () {//1 Create directory//directory directory = new RA Mdirectory (); Index is built in memory directory directory = NULL; Index is built on disk try {directory = Fsdirectory.open (new FilE (Indexpath)); } catch (IOException e) {e.printstacktrace (); }//2 Create indexreader indexreader indexreader = null; try {indexreader = indexreader.open (directory); 3 Create search Indexsearcher Indexsearcher = new Indexsearcher (Indexreader); 4 Create a search for query queryparser queryparser = new Queryparser (version.lucene_35, "Content", new StandardAnalyzer (version.lucene_35)); 5 Create a query that indicates that the search domain is a document containing Java in content query query = queryparser.parse ("3350527960"); 6 searches according to searcher and returns Topdocs int querylimit = 10; Topdocs Topdocs = indexsearcher.search (query, querylimit); 7 according to Topdocs obtained scoredocs scoredoc[] Scoredocs = Topdocs.scoredocs; int i = 0; for (Scoredoc scoredoc:scoredocs) {//8 Gets the Document object based on searcher and Scoredoc Document document = Indexsearcher.doc (Scoredoc.doc); Logger.info (i + document.get ("path") + document.get ("name"); }} catch (IOException e) {e.printstacktrace (); } catch (ParseException e) {e.printstacktrace (); } finally {if (Indexreader! = null) {try {indexreader.close (); } catch (IOException e) {e.printstacktrace (); } } } }}
Creating indexes and searches