lucene寫索引的函式呼叫關係

2021-06-09 14:29:55 字數 1225 閱讀 9194

函式的呼叫構成一棵樹,同等深度的為兄**樹,更深的為更淺的後代。

indexwriter.adddocument

documentswriter.updatedocument

docfieldprocessorperthread.processdocument

storedfieldswriterperthread.addfield

fieldwriter.writefield

ramoutputstream.writevint

ramoutputstream.writebyte

//這裡把要寫的內容放入緩衝區

currentbuffer[bufferposition++] = b;

ramoutputstream.writebyte

ramoutputstream.writestring

docinverterperfield.processfields

indexwriter.commit

indexwriter.commitinternal

indexwriter.preparecommit

indexwriter.doflush

documentswriter.flush

docfieldprocessor.flush

storefieldwriter.finish

storefieldwriter.close

ioutils.close

fsdirectory.close

fsdirectory.flush

fsdirectory.flushbuffer

//這裡最終寫入磁碟檔案

randomaccessfile.write

indexwriter.add(segmentinfo)

buffereddeletesstream.prune(segmentinfos)

indexwriter.clearflushpending

indexwriter.commit(segmentinfos)

segmentinfos.files(directory)

indexwriter.startcommit(segmentinfos)

indexwriter.finishcommit

indexwriter.closeinternal

indexwriter.close

Lucene查詢的函式呼叫關係

indexsearcher.search indexsearcher.createnormalizedweight query phrasequery.createweight new phraseweight indexsearcher.getsimilarity defaultsimilarit...

Lucene的平行索引

有時對於乙個document來說,有一些field會被頻繁地操作,而另一些field則不會。這時可以將頻繁操作的field和其他field分開存放,而在搜尋時同時檢索這兩部分field而提取出乙個完整的document。這要求兩個索引包含的document的數量必須相同。在建立索引的時候,可以同時建...

Lucene索引的建立

lucene索引的建立 1.搜尋引擎之所以檢索速度快其中乙個因素就是對索引的建立。就好像書籍的目錄,可以讓我們迅速定位到內容。這裡引用一張圖說明搜尋過程。從圖中可以很清晰的看到乙個搜尋系統,三個部分 收集資料整理成索引文件,這個過程多是確定你需要檢索的資訊。比如如果你需要檢索圖書館中的書。那麼你可能...