亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

索引學習筆記

系統 1855 0

一、Index屬性介紹

Field.Store.YES或者NO(存儲域選項)

YES:將會存儲域值,原始字符串的值會保存在索引中,以此可以進行相應的恢復操作,對于主鍵,標題可以是這種方式存儲

NO:不會存儲域值,通常與Index.ANAYLIZED合起來使用,索引一些如文章正文等不需要恢復的文檔 , 此時內容無法完全還原(doc.get)

?

Field.Index(索引選項)

Index.ANALYZED:進行分詞和索引,適用于標題、內容等

Index.NOT_ANALYZED:進行索引,但是不進行分詞,如果身份證號,姓名,ID等,適用于精確搜索

Index.ANALYZED_NOT_NORMS:進行分詞但是不存儲norms信息,這個norms中包括了創建索引的時間和權值等信息

Index.NOT_ANALYZED_NOT_NORMS:即不進行分詞也不存儲norms信息

Index.NO:不進行索引

?

使用場景

索引學習筆記

?

二、索引文件的初步認識:

_0.fdt

_0.fdx

---存儲域的值---

?

_0.fnm

---存儲域的名稱---

?

_0.frq

---分詞出現的頻率---

?

_0.nrm

---存儲評分信息---

?

_0.prx

---位偏移量---

?

_0.tii

_0.tis

---索引信息---

?

?三、索引建立步驟

1、創建Directory

?

      Directory directory = FSDirectory.open(new File("D:/test/index01"));
    
? ?

?

2、創建Writer

?

      IndexWriter writer = new IndexWriter(directory, 
new IndexWriterConfig(Version.LUCENE_35,new StandardAnalyzer(Version.LUCENE_35)));
    
? ?

?

3、創建文檔并且添加索引

文檔和域的概念很重要

?

文檔相當于表中的每一條記錄,域相當于表中每一個字段

?

      Document document = null;

Collection<File> files = FileUtils.listFiles(new File("D:/test/lucene"),FileFileFilter.FILE, null);
for (File file : files) {
	document = new Document();
	document.add (new Field ("content ", new FileReader(file)));
	   //域名可以重復使用,在 使用 的時候 這樣取出,doc.getValues("content")[1]
	   document.add (new Field ("content ", "可以再次放置一些內容"); 
	document.add(new Field("filename", file.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
	document.add(new Field("path", file.getAbsolutePath(), Field.Store.YES,Field.Index.NOT_ANALYZED));//是否存儲路徑,是否進行分詞
	
	writer.addDocument (document);
}
    
?

?

4、查詢索引的基本信息

?

      IndexReader reader = IndexReader.open(directory);
//通過reader可以有效的獲取到文檔的數量
System.out.println("numDocs:" + reader.numDocs() );//可以使用的文檔數量
System.out.println("maxDocs:" + reader.maxDoc() );//所有的文檔數量,包括被刪除的文檔
System.out.println("deleteDocs:" + reader.numDeletedDocs() );//被刪除的文檔數量 
reader.close();
    
?

?

5、刪除索引

      //參數是一個選項,可以是一個Query,也可以是一個term,term是一個精確查找的值
//此時刪除的文檔并不會被完全刪除,而是存儲在一個回收站中的,可以恢復 
writer.deleteDocuments (new Term ("id", "1"));
writer.commit();
    

?

6、恢復刪除

?

      try {
	//恢復時,必須把IndexReader的只讀(readOnly)設置為false
	IndexReader reader = IndexReader.open(directory, false); 
	reader.undeleteAll ();
	reader.close();
}
    

?

7、強制刪除,相當于刪除回收站里面的,徹底刪除了

      writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
writer.forceMergeDeletes ();
    

?

8、優化和合并索引

?

      writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
//會將索引合并為2段,這兩段中的被刪除的數據會被清空
//特別注意:此處Lucene在3.5之后不建議使用,因為會消耗大量的開銷,
//Lucene會根據情況自動處理的 
writer.forceMerge (2);
    

?

9、更新索引

      writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35,
	new StandardAnalyzer(Version.LUCENE_35)));
/*
 * Lucene并沒有提供更新,這里的更新操作其實是如下兩個操作的合集
 * 先刪除之后再添加
 */ 
Document doc = new Document();
doc.add(new Field("id", "11", Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
doc.add(new Field("email", emails[0], Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("content", contents[0], Field.Store.NO, Field.Index.ANALYZED));
doc .add(new Field("name", names[0], Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
writer.updateDocument(new Term("id", "1"), doc);
//會把原來id=1的那個文檔刪掉,新增id=11的那個文檔 
    

?

索引學習筆記


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 秘密影院久久综合亚洲综合 | 欧美一级aⅴ毛片 | 奇米在线免费视频 | 久久网站在线观看 | 日本高清视频一区二区 | 国产波多野结衣中文在线播放 | 亚洲欧美日韩中文无线码 | 成人午夜啪啪免费网站 | 免费看欧美日韩一区二区三区 | 奇米影视在线视频8888 | 国内精品伊人久久久影院 | 黄色毛片小视频 | 四虎hu| 欧洲一级毛片免费 | 欧美乱插 | 亚洲精品欧洲久久婷婷99 | 四虎影院在线观看免费 | 99资源网 | 国产美女激情视频 | 中文字幕伊人久久网 | 狠狠躁日日躁人人爽 | 国产成人亚洲综合欧美一部 | 97国产在线视频公开免费 | 成人精品第一区二区三区 | 国产一区二区三区不卡免费观看 | 伊人黄色片 | 一区二区三区日韩精品 | 亚洲大片免费 | 在线观看 一区二区 麻豆 | 五月婷视频 | 成人亚洲国产精品久久 | 国产玖玖在线观看 | 99re热视频这里只有精品5 | 亚洲免费区 | 亚洲国产综合人成综合网站00 | 色中色污 | 一级欧美一级日韩毛片99 | 夜夜躁狠狠躁日日躁2021 | 免费一级片视频 | 亚洲最大色视频 | 久久99久久99小草精品免视看 |