最近專案中要用到全文搜尋,所以在網上搜了下,找到了lucene ,學習下;
lucene是乙個很容易上手的搜尋引擎框架,傳統的搜尋引擎,涉及到爬蟲,也就是爬取網頁,然後對網頁進行加工,也就是索引,最後用於搜尋,lucene這個框架可以很方便的幫你做到後面兩個步驟,也就是索引和搜尋!本文嘗試通過乙個例子,使大家掌握lucene的使用核心方法,包括分詞、索引、搜尋不同的目錄、搜尋不同的域,希望大家通過這個例項,對lucene和搜尋引擎能有比較全面的認識!
1. package phz;
2. 3. import org.apache.lucene.analysis.standard.standardanalyzer;
4. import org.apache.lucene.document.document;
5. import org.apache.lucene.document.field;
6. import org.apache.lucene.index.indexwriter;
7. import org.apache.lucene.queryparser.multifieldqueryparser;
8. import org.apache.lucene.search.booleanclause;
9. import org.apache.lucene.search.hits;
10. import org.apache.lucene.search.indexsearcher;
11. import org.apache.lucene.search.multisearcher;
12. import org.apache.lucene.search.query;
13.
14. /**
15. * 這個例項包含了lucene所有核心用法
16. *
17. * @author panhuizi
18. *
19. */
20. public class lucenetest catch (exception e)
32. system.out.println("ok");
33. }
34.
35. public void index() throws exception
81.
82. public void search(string serchstring) throws exception ;
87. /* 我們需要搜尋兩個域"articletitle", "articletext"裡面的內容 */
88. string fields = ;
89. /* 下面這個表示要同時搜尋這兩個域,而且只要乙個域裡面有滿足我們搜尋的內容就行 */
90. booleanclause.occur clauses = ;
92. /*
93. * multifieldqueryparser表示多個域解析,
94. * 同時可以解析含空格的字串,如果我們搜尋"中國 金牌",根據前面的索引,顯然搜到的是第二份檔案
95. */
96. query query = multifieldqueryparser.parse(serchstring, fields, clauses,
97. new standardanalyzer());
98. /* multisearcher表示多目錄搜尋,在這裡我們只有乙個目錄 */
99. multisearcher searcher = new multisearcher(indexsearchers);
100. /* 開始搜尋 */
101. hits h = searcher.search(query);
102. /* 把搜尋出來的所有檔案列印出來 */
103. for (int i = 0; i < h.length(); i++)
109. /* 關閉 */
110. searcher.close();
111. }
112. }
搜尋引擎 lucene
lucene簡介 搜尋引擎的幾個概念 倒排 倒排索引 inverted index 也稱為反向索引,是搜尋引擎中最常見的資料結構,幾乎所有的搜尋引擎都會使用到倒排索引,它將文件中的詞作為關鍵字,建立詞與文件的對映關係,通過對倒排索引的檢索,可以根據詞快速獲取包含這個詞的文件列表,這對於搜尋引擎來說至...
搜尋引擎lucene入門程式示例
下面是我學習lucene3.4入門時按照lucene in action 第二版改寫的乙個例子。首先要匯入lucene core 3.4.0.jar包。package com.cn import org.apache.lucene.analysis.standard.standardanalyzer...
搜尋引擎 索引
正排索引 文件編號,單詞編號,單詞的數量,單詞出現的位置。倒排索引 1,單詞詞典,儲存單詞以及統計資訊,單詞在記錄表中的便宜,可常駐記憶體,用雜湊表儲存。2,記錄表,單詞對應的文件集合,記錄單詞出現的數目 位置。文件採用差分變長編碼。其中文件可按編號公升序排列 可利用差分編碼 也可按出現次數排列,可...