Lucene的小入門

2021-09-22 19:37:32 字數 2537 閱讀 9389

lucene的搜尋原理:在進行搜尋之前,我們只要新增資料,就會對資料進行分詞,並把分詞後的資料和資料對應的id儲存到索引庫中,我們進行查詢的時候,不會根據某個欄位的值直接去查資料庫(因為可能資料量很龐大,或者資料庫在進行模糊匹配的時候資料庫索引會失效,很消耗效能),而是先去索引庫中查詢獲取到id,然後再去資料庫中去查詢

下面我這裡演示下lucene中一些常用的api的使用吧(本案例採用lucene4.x系列的版本)

1.建立索引:使用ik分詞器,還需要匯入兩個配置檔案

//演示使用ik分詞器後的效果

@test

public void buildindex() throws ioexception

下面是建立索引比較完整的乙個例子:

@test

public void completebuildluceneindex() throws ioexception

2.a查詢索引(也可以認為是對長詞進行分詞查詢):

//簡單長詞模糊查詢

@test

public void testqueryparse() throws parseexception, ioexception

查詢索引小加強版本(加強在哪?加強在多列查詢上,上述**只是單列查詢,查詢的只是content這個字段)

@test

public void queryindex2() throws parseexception, ioexception , new ikanalyzer());

query query = multifieldqueryparser.parse("谷歌");//開始解析要查詢的值

//建立索引搜尋物件,並制定索引庫的位置

indexsearcher indexsearcher = new indexsearcher(directoryreader.open(fsdirectory.open(new file("e:/tmp"))));

//開始查詢

topdocs topdocs = indexsearcher.search(query, integer.max_value);

system.out.println("命中數量"+topdocs.totalhits);

scoredoc scoredocs = topdocs.scoredocs;

for (scoredoc scoredoc :

scoredocs)

}

其他還有一些查詢:詞條查詢、模糊搜尋、相似度搜尋、組合查詢,下面依依演示一遍

2.b.詞條查詢

//測試詞條查詢(測試termquery),不需要再去構建查詢解析器物件

@test

public void testtermquery() throws ioexception

}

2.c.模糊搜尋

//測試模糊搜尋(也可以叫做短詞模糊匹配,使用wildcardquery)

@test

public void testwildcardquery() throws ioexception

}

2.d.相似度搜尋(場景:就例如我們有時候想搜'百科全書'寫成'擺科全輸',依舊有時候能搜到我們需要的結果)

@test

public void testfuzzquery() throws ioexception

}

2.e查詢索引庫所有內容

@test

public void queryallfromindex() throws ioexception

}

2.f組合查詢(可以做到將上述幾個查詢進行合併,嗯,比較實用)

//測試組合查詢(這裡演示將queryparse和wildcardparse進行合併)

@test

public void testbooleanquery() throws parseexception, ioexception

}

3.更新索引庫中的索引資料

//更新索引庫中的索引

@test

public void updateindexdata() throws ioexception

4.刪除索引

//刪除索引庫中的指定資料

@test

public void deleteindexdata() throws ioexception

好了,以上就是lucene的基本操作,後面我會更新一篇高階點的部落格。

Lucene的入門例子

1.lucene的基本步驟 配 與jar包版本 2.示例的 3.完成示例後再該延伸到哪些知識 jar包版本 一 從資料庫中查資料 爬資料 1 public arraylistgetdate string sql throws sqlexception 把資料庫裡的資料取出來 return item ...

lucene的實戰入門

最近在寫個人部落格專案.有個需求.就是要求在前端頁面上有乙個搜尋框,使用者可以根據這個搜尋框對所有部落格進行全文檢索,包括標題和正文,然後根據搜尋匹配度進行排序展示出來,並且要有高亮顯示,類似如下效果 全文檢索的這個功能可以採用lucene這個框架實現.lucene的具體原理到底是什麼呢?其實就是根...

lucene入門學習

我們生活中的資料總體分為兩種 結構化資料和非結構化資料 全文檢索 將非結構化資料中的一部分資訊提取出來,重新組織,使其變得有一定結構,然後對此有一定結構的資料進行搜尋,從而達到搜尋相對較快的目的。這部分從非結構化資料中提出的然後重新組織的資訊,我們稱之為索引。這種先建立索引,再對索引進行搜尋的過程就...