標籤:速度 索引 sdi acl tor 內容 來講 檔案 溝通
(01)rownum和rowid有何區別?
rownum在表結構中是看不見的,只能在select中明確寫出rownum方可顯示
rownum與不同的表綁定在一起,每張表都有自已的rownum,每張表的rownum可以相同,表亡rownum亡
rownum可用於oracle分頁中
rownum是從1開始的連續不斷的數值型
rowid在表結構中是看不見的,只能在select中明確寫出rowid方可顯示
rowid在每張表中都不一樣,表亡rowid亡,它是溝通表與DBF檔案的橋樑
rowid可用於索引中
(02)IndexWriter和IndexSearcher有何作用?
IndexWriter將Document對象寫入到索引庫中,適用於增刪改操作
IndexSearcher根據關鍵字去索引庫中查詢合格資料,只適用於查詢操作
(03)Directory directory = FSDirectory.open(new File("E:/LuceneDBDBDBDBDBDBDBDBDB"));這句話什麼意思?
索引庫對應的硬碟上的目錄,如果無則建立;返之不建立
(04)document.add(new Field("content",article.getContent(),Store.YES,Index.ANALYZED));這句話什麼意思?
將content欄位和其對應的值,放入到索引庫的原始表中,且該欄位的值需要進行分詞
(05)TopDocs topDocs = indexSearcher.search(query,10);這句話什麼意思?
去索引庫中查詢合格資料,超過10條資料,只取前10條;不足10條,以實際為準
(06)談談索引庫最佳化有哪幾個方面
>>檔案數量問題
>>檔案大數問題
>>寫入索引庫速度問題
(07)分詞器有什麼作用
使用者不可能完全記住所有文章的內容,可能只能記住該文章中的某些關鍵字,
那麼做為搜尋功能的程式來講,就需要用關鍵字去最大限度搜尋到使用者需要的
內部,分詞器就在中間起了一個橋樑作用
(08)document.get("content")和document.getField("content")有什麼區別?
get()擷取document對象中content欄位的值,傳回值是String類型
getField("content")擷取document對象中content欄位,傳回值是Field類型
(09)在預設情況下,搜尋結果是如何排序的?如果有二個結果相同,又是如何排序的?
在預設情況下,按得分度的高低排序,如果相同得份,按你插入索引庫的先後排序
(10)QueryParser queryParser =
new QueryParser(LuceneUtil.getVersion(),"content",LuceneUtil.getAnalyzer());
QueryParser queryParser =
new MultiFieldQueryParser(LuceneUtil.getVersion(),new String[] {"content","title"},LuceneUtil.getAnalyzer());
有什麼區別?
第一個API表示單欄位搜尋
第二個API表示多欄位搜尋
lucene總結——(十七)