1. 程式人生 > >lucene 4.4 終於跑通了

lucene 4.4 終於跑通了

需要jar包至少為 :

lucene-analyzers-common-4.4.0.jar

lucene-core-4.4.0.jar

lucene-queryparser-4.4.0.jar

是否需要依賴包不知道了

首先在D盤新建兩個資料夾D:/luceneIndex和D:/luceneData,在luceneData下面隨便新增幾個文字檔案

然後生成索引,然後再根據索引開始搜尋

生成索引的程式碼:執行以後在luceneIndex下面會出現幾個檔案package com.huateng.lucene;

package com.huateng.lucene;

import java.io.*;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.LongField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

public class TxtFileIndexer {

	public static void main(String[] args) throws Exception {
		File indexDir = new File("d:/luceneIndex");
		File dataDir = new File("D:/luceneData");
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_44);
		File[] dataFiles = dataDir.listFiles();
		IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_44,
				analyzer);
		Directory dir = FSDirectory.open(indexDir);
		IndexWriter indexWriter = new IndexWriter(dir, iwc);
		for (File file : dataFiles) {
			System.out.println(file.getPath());
			FileInputStream fis = new FileInputStream(file);
			Document doc = new Document();
			Field pathField = new StringField("path", file.getPath(),
					Field.Store.YES);
			doc.add(pathField);
			doc.add(new LongField("modified", file.lastModified(),
					Field.Store.NO));
			doc.add(new TextField("contents", new BufferedReader(
					new InputStreamReader(fis, "UTF-8"))));
			indexWriter.addDocument(doc);
		}
		indexWriter.close();
	}
}

執行搜尋的程式碼
package com.huateng.lucene;
import java.io.*;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

public class TxtFileSearcher {

	public static void main(String[] args) throws Exception{
		String field = "contents";
		String queryStr = "lucene"; 
        File indexDir = new File("D:/luceneIndex"); 
        IndexReader reader = DirectoryReader.open(FSDirectory.open(indexDir));
        IndexSearcher searcher = new IndexSearcher(reader);
        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_44);
        QueryParser parser = new QueryParser(Version.LUCENE_44, field, analyzer);
        Query query = parser.parse(queryStr);
        System.out.println("Searching for: " + query.toString(field));
        TopDocs results = searcher.search(query, 50);
        ScoreDoc[] hits = results.scoreDocs;
        int numTotalHits = results.totalHits;
        System.out.println(numTotalHits + " total matching documents");
        for(ScoreDoc sd:hits){
        	Document doc = searcher.doc(sd.doc);
        	System.out.println(doc.get("path"));
        }
        
	}
}

執行以後輸出:
Searching for: lucene
2 total matching documents
D:\luceneData\a.txt
D:\luceneData\b.txt


相關推薦

lucene 4.4 終於

需要jar包至少為 : lucene-analyzers-common-4.4.0.jar lucene-core-4.4.0.jar lucene-queryparser-4.4.0.jar 是否需要依賴包不知道了 首先在D盤新建兩個資料夾D:/luceneIndex和

CentOS 安裝oracle資料庫(終於~~)

要在CentOS6.5上,安裝oracle 11 r2,網上搜尋了好久,還是各種不通,搞了一天終於弄好了,這裡記錄一下; 首先宣告:安裝的機器記憶體至少要2G,因為在後面安裝的時候,會有個preckeck,記憶體不能小於1G,我都是到最後才發現不行,崩潰。。。

zjb_data/ZJL195 failed zjb_data/ZJL195 failed zjb_data/ZJL195 failed zjb_data/ZJL195 failed zjb_data/ZJL195 failed zjb_data/ZJL195 failed

嘗試參加阿里雲 天池 大賽 (看看odps到底封裝的多好)1,本地。2、把mr程式上傳到御膳房

額,聽說odps是封裝hadoop上的二次開發。。。 試試 download下來專案到eclipse 裡 出現的第一個錯誤是: 錯誤: 找不到或無法載入主類 my.group.mapreduce.JobLauncher 這個比較簡單,因為自己手賤點了maven clea

利用Python解密之前的QQ聊天記錄, 終於當年事情的真相!

據說手機QQ 2012之後使用記錄儲存的sqliteDB內容加密,庫沒有設定密碼,直接用sqliteadmin之類的軟體開啟之後可以看到一堆歪七扭八的字元。那麼如何利用Python恢復和解密QQ聊天記錄呢? 資料庫在哪? 怎麼加密了? 然後就是:key哪裡來

kubernetes(5): 安裝kubeadm-dind-cluster 遇到的問題,終於起來

1,關於kubeadm-dind-cluster 昨天研究了下,kubeadm-dind-cluster 。 已經啟動了。但是dashboard 沒有啟動成功。 在弄的時候遇到點問題。總結下。 2,設定sysctl.conf 設定/

終於分散式事務框架tcc-transaction的示例專案

1、背景 前段時間在看專案程式碼的時候,發現有些介面的流程比較長,在各個服務裡面都有通過資料庫事務保證資料的一致性,但是在上游的controller層並沒有對一致性做保證。 網上查了下,還沒找到基於Go開源的比較成熟的分散式事務框架。 於是,準備看看之前隔壁部門大佬寫的tcc-transaction,這

嵌入式stm32f429上成功主流Linux 4.13

樓主是個閒的蛋疼的大學僧,在高中和大學的社團、工作室中長期搞微控制器和嵌入式系統開發。剛接觸樹莓派時候是驚歎不已的,然後眼看香蕉派楊梅派橙子派荔枝派醋鱉派等等等等的“開源硬體”相繼登場,也是一陣的興奮,還有那些安卓電視棒路由器之類的亂七八糟的東西,也入手了不少板子來吃灰。當然

#程式設計師工作9年終於一套房!網友:工作4終於個兩室一廳

如今的社會,很多人盤點一個人是否成功是否有出息就是看這個人有沒有房有沒有車!很多父母長輩嫁女都要求男方要有房子。而程式設計師也不例外,雖然如今的房價的上漲速度遠比程式設計師薪資漲得快,但是其中還是有少部分人通過自己的努力,在一些大城市有了自己的一套房子!近日,就有網友發文感慨: 如果有想學習ja

轉載 程式設計師找工作也難:2個月4座城市,投幾百封簡歷還沒結果

近期經常想到的一個詞就是“感恩”,有時候別以為我們身邊的所有的事情都是理所當然的,應該好好珍惜,不要等到失去了才知道原來是多麼寶貴,當我們在厭煩當前工作枯燥的時候,當我們吐糟工作太累,福利不好,年終獎沒往年多的時候,有的人卻像孤魂野鬼一樣,到處流浪,找不到自己的歸屬,與他們相比我們是不是應該

什麼叫工業4.0?這篇接地氣的文章終於講懂

早年從事過工業自動化行業,後來為了賺點講課費做零花錢,去幾個城市,講過《工業網際網路與工業文明史》這門課,以至於很多人以為我很懂工業網際網路(其實我也就是半桶水而已)。 今天早上樂視網的好基友問我,工業4.0 到底是個啥,本來答應給他單獨講一遍,後來一想,不如整理下材料和

雲服務器的4大用途你是否解?

提高 nbsp 電子 信息化之路 工作 穩定性 形象 企業信息 過去的 互聯網+時代,雲服務器已經成為很多企業的首選,尤其是香港服務器迅速占領大陸市場。除了其免備案虛擬主機上線省事的特點之外,過硬的品質也是大陸網站更加青睞香港服務器的原因。作為香港服務器的領軍品牌,3A網絡

Win10 IoT C#開發 4 - UART 串口

ability 框架 console 包含 pack 串口通訊 app bras thread 原文:Win10 IoT C#開發 4 - UART 串口通信Windows 10 IoT Core 是微軟針對物聯網市場的一個重要產品,既可以開發設備UI與用戶交互式操作,又可

cordova-ios 升級到4.4.0 無法真機iOS8 報錯: dyld`dyld_fatal_error: -> 0x120085088 <+0>: brk #0x3

升級 ror stat 環境 detail 估計 ova app 全面 項目進入測試階段,馬上要上線了,同事拿了自己的iOS8系統5s跑真機,無緣無故報錯,之前跑她的手機完全沒有問題的。Xcode 8.x中最低部署版本是iOS8.0,按理說完全能夠跑真機的。 但是報了一個

Lucene.net(4.8.0) 學習問題記錄五: JIEba分詞和Lucene的結合,以及對分詞器的思考

+= d+ ext eth reac chart rdl ret start 前言:目前自己在做使用Lucene.net和PanGu分詞實現全文檢索的工作,不過自己是把別人做好的項目進行遷移。因為項目整體要遷移到ASP.NET Core 2.0版本,而Lucene使用的版本

spring3: 4.4 使用路徑配符加載Resource

mat 遍歷 系統 根目錄 開頭 ioe jar fig files 4.4.1 使用路徑通配符加載Resource 前面介紹的資源路徑都是非常簡單的一個路徑匹配一個資源,Spring還提供了一種更強大的Ant模式通配符匹配,從能一個路徑匹配一批資源。

<東方夢符祭> N1無盡30波終於

出了 microsoft src family span ... font 問題 紀念 嘛也算是第一次通關 紀念一下 陣容:xjb搭的雜牌隊 主C:古明絕戀 露米婭(真·R卡戰神)比那名居天子 斯卡雷特 控制:琪露諾 蕾蒂 靈夢 掛件:小傘 納茲琳 古明地覺 永江

在Qt 4.4中,Alien Widget誕生(Window負責與窗口系統的聯系。Alien被號稱是所有閃爍的終結者)

http rect popu hang 重繪 das data- target native 2011年09月29日 23:47:46 閱讀數:7269 Qt 4.0 automatically double-buffe

【菜鳥教程】小白接觸白鷺引擎4天,成功做一款足球小遊戲

下一步 發現 https sta 圖片 sce 變量名 找到 是否 寫在前面:隨著越來越多的新人開始接觸白鷺引擎,創作屬於自己的遊戲。考慮到初學者會遇到一些實際操作問題,我們近期整理推出“菜鳥”系列技術文檔,以便更好的讓這些開發者們快速上手,Egret大神們可以自動忽略此類

LOJ10131. 「一本 4.4 例 2」暗的連鎖【樹上差分】

LINK solution 很簡單的題 你就考慮實際上是對每一個邊求出兩端節點分別在兩個子樹裡面的附加邊的數量 然後這個值是0第二次隨便切有m種方案,如果這個值是1第二次只有一種方案 如果這個值是2或者更大沒有方案 然後就可以直接統計答案了 那麼就對每一次查詢的邊 在兩個節點++,lca處