溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Lucene4.7索引和檢索的常用API有哪些

發(fā)布時間:2021-12-23 09:11:31 來源:億速云 閱讀:135 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內容介紹了“Lucene4.7索引和檢索的常用API有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

為了方便對比學習,下面給出表格數(shù)據(jù) 

索引期間使用的API組件檢索期間使用的API組件
IndexWriterIndexReader
IndexWriterConfigIndexSearcher
DirectoryDirectory
AnalyzerQueryParser或者Query子類
DocumentTopDocs
FieldScoreDoc--Term      


下面筆者就對上圖組件一一剖析下 

首頁要介紹的就索引期間的各個類 
1,IndexWriter是索引過程中的核心類,主要負責創(chuàng)建索引或者打開已有索引,提供對索引的 
添加,刪除,修改等操作 
2,IndexWriterConfig這個API在低版本的Lucene中是沒有此配置類的,這個類也比較重要,使用此類則需要在其構造方法中傳入2個參數(shù),第一個參數(shù)是Lucene當前的版本號,第二個是索引是使用的分詞器,除了這個我們最常用的功能,里面還提供了大量工具方法,例如,設置內存里緩沖大小,設置文檔數(shù)據(jù)批量提交時大小,獲取線程狀態(tài),設置創(chuàng)建模式,以及是否開啟復合索引的等等一系列,可以對索引做一些基本的配置優(yōu)化等信息。 
3,Directory這個類代表了Lucene索引的存放位置,是一個抽象類,它有一系列子類可以用來處理索引,使用不同的子類對于系統(tǒng)的性能,影響會很大,但歸其本質上,提升性能,無非就拿空間換時間或拿時間或空間2中情況,在具體使用時,我們可以使用其子類來獲取索引所在的存儲路徑,然后將其傳給IndexWriter類構造方法里。 
4,Analyzer這個類也是所有分析器的基類,文本文件在索引前,需要經(jīng)過分析器處理,處理成對應的語匯單元,統(tǒng)一格式,它能提取有效的信息,過濾掉一些禁用詞,Lucene自帶有幾個分析器,但大部分都是對英文或歐洲語言處理的,如果想要使用中文的分詞器,可以使用其自帶的SmartCN分詞器,也可以用開源的IK,messeg4j等等,選擇什么樣的分析器是索引過程中很重要的一步,這個關鍵還得看自己的業(yè)務需求定。 
5,Document代表一個文檔的意思,類似于數(shù)據(jù)庫的一行記錄,我們可以向文檔中,添加自己想要的域字段,然后在把一個個文檔索引起來,提供檢索。 
6,F(xiàn)ield就是文檔中存儲的域,每一個域都有一個域名和域值,這就類似數(shù)據(jù)庫的字段名跟值一樣,我們可以使用Field來精確控制各個域的值,最常用的有2個Field,一個是不提供分詞的StringField和另外一個分詞的TextFiled,當然還有其他的一些Field,在這里就不多介紹了。 
7,IndexReader這個類用來獲取Directory的子類打開的索引文件流,然后在將進IndexSearcher的構造方法里,進行查詢組件的初始化操作,這個類再低版本的的Lucene里也是不存在的,在后來新的版本里才添加的類。 
8,IndexSearcher這個類是程序搜索期間的核心類,是連接索引的橋梁,它是以只讀的方式打開索引,提供了大量檢索,排序,過濾的等等以及其他的一些功能。 
9,QueryParser或Query都可以完成一些檢索功能,不同的是QueryParser提供的功能更為強大,方便自定義開發(fā)一些檢索方案,而Query及其麾下的一系列子類是Lucene中自帶的一些API,使用這些API,大部分情況下都可以完成一些基本的檢索,如果需要定制化自己的檢索方案則需要使用QueryParser,大多數(shù)情況下,我們最常使用的是Query下面的TermQuery子類,當然還有其他大量的特定功能的Query子類存在。 
10,TopDocs這個類是一個簡單的容器指針,它一般會記錄前N個檢索的結果,在TopDocs中,它只會存儲這個文檔的docid以及獲取的得分情況,另外這前N個結果,默認的排序方式,是按照得分的大小排列的。 
11,ScoreDoc類通常我們使用的是一個數(shù)組,它里面也只會包含這個文檔的docid以及獲取的得分情況,與TopDocs不同的是,我們可以使用這個類,來進行類似數(shù)據(jù)庫的分頁操作,當然你得保證你有足夠的內存,如果是海量數(shù)據(jù)的分頁,這個操作很容易造成內存溢出,這時候我們就需要考慮其他方法了。 
12,Term類是搜索功能最基本的單元,與Field類似,檢索的時候需要傳入域名及檢索的字符串,是一個小而不可或缺的精簡類。 

“Lucene4.7索引和檢索的常用API有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI