同步操作将从 Rainy/DocSys 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package util;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;import org.apache.lucene.index.CorruptIndexException;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.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.store.LockObtainFailedException;import org.apache.lucene.util.Version;/*** @ClassName: Lucene_index* @Description: TODO(这里用一句话描述这个类的作用)* @author zhanjp zhanjp@sunyard.com* @date 2015年8月5日 下午4:49:15* @version V1.0*/public class Lucene_index {private String[] ids={"1","2","3","4","5","6"};private String[] emails={"aa@aa.org","cc@cc.org","dd@@dd.org","bb@bb.org","ee@ee.org","ff@ff.org"};private String[] contents={"welcometotyu","hellowboy","higirl","howareyou","googluck","badgosh"};private int[] attachs={1,2,3,4,5,6};private String[] names={"liwu","zhangsan","xiaoqinag","laona","dabao","lisi"};private Directory directory=null;public Lucene_index(){try {directory=FSDirectory.open(new File("f:/lucene/index02"));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void quary(){try {IndexReader reader=IndexReader.open(directory);System.out.println("numdocs"+reader.numDocs());System.out.println("maxDocs"+reader.maxDoc());System.out.println("detelemaxDocs"+reader.numDeletedDocs());reader.close();} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}@SuppressWarnings("deprecation")public void undelete(){// try {// //回复时必须把reader的只读设为false// IndexReader reader=IndexReader.open(directory,false);// reader.undeleteAll();// reader.close();// } catch (CorruptIndexException e) {// // TODO Auto-generated catch block// e.printStackTrace();// } catch (IOException e) {// // TODO Auto-generated catch block// e.printStackTrace();// }}//清空回收站,强制优化public void forceDelete(){IndexWriter writer=null;try {writer=new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_46,new StandardAnalyzer(Version.LUCENE_46)));//参数十一个选项,可以是一个query,也可以是一个term term就是一个精确查找的值//此时删除的文档并未完全删除,而是存储在回收站中,可以恢复的writer.forceMergeDeletes();} catch (CorruptIndexException e) {e.printStackTrace();} catch (LockObtainFailedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if (writer!=null) {try {writer.close();} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public void merge(){IndexWriter writer=null;try {writer=new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_46,new StandardAnalyzer(Version.LUCENE_46)));writer.forceMerge(2);} catch (CorruptIndexException e) {e.printStackTrace();} catch (LockObtainFailedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if (writer!=null) {try {writer.close();} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public void delete(){IndexWriter writer=null;try {writer=new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_46,new StandardAnalyzer(Version.LUCENE_46)));//参数十一个选项,可以是一个query,也可以是一个term term就是一个精确查找的值//此时删除的文档并未完全删除,而是存储在回收站中,可以恢复的writer.deleteDocuments(new Term("id","1"));} catch (CorruptIndexException e) {e.printStackTrace();} catch (LockObtainFailedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if (writer!=null) {try {writer.close();} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public void index(){IndexWriter writer=null;Document doc=null;try {writer =new IndexWriter(directory,new IndexWriterConfig(Version.LUCENE_46,new StandardAnalyzer(Version.LUCENE_46)));//writer.deleteAll();for(int i=0;i<ids.length;i++){doc=new Document();doc.add(new Field("id",ids[i],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));doc.add(new Field("emails",emails[i],Field.Store.YES,Field.Index.NOT_ANALYZED));doc.add(new Field("contents",contents[i],Field.Store.YES,Field.Index.ANALYZED));doc.add(new Field("name",names[i],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));writer.addDocument(doc);}} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (LockObtainFailedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(writer!=null){try {writer.close();} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}//更新索引public void update(){/*lucene本身不支持更新** 通过删除索引然后再建立索引来更新*/IndexWriter writer=null;Document doc=null;try {writer =new IndexWriter(directory,new IndexWriterConfig(Version.LUCENE_46,new StandardAnalyzer(Version.LUCENE_46)));writer.deleteAll();for(int i=0;i<ids.length;i++){doc=new Document();doc.add(new Field("id",ids[i],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));doc.add(new Field("emails",emails[i],Field.Store.YES,Field.Index.NOT_ANALYZED));doc.add(new Field("contents",contents[i],Field.Store.YES,Field.Index.ANALYZED));doc.add(new Field("name",names[i],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));writer.updateDocument(new Term("id","1"), doc);}} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (LockObtainFailedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(writer!=null){try {writer.close();} catch (CorruptIndexException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。