Lucene是apache軟件基金會4 jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。Lucene的目的是為軟件開發人員提供一個簡單易用的工具包.
創新互聯主要從事成都網站制作、成都網站建設、外貿營銷網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務內江,10多年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18982081108
粘貼這句話的意思就是想說明 Lucene僅僅是一個工具包,搜索引擎的工具包.
有人會問?Lucene和solr的區別,solr是一個搜索系統,打個比方,就如servlet和struts2的區別 Lucene就是servlet,solr就好比solr,solr封裝了Lucene.
下面說說Lucene的原理:
我們使用Lucene,其實使用的是他的倒排查詢
什么是倒排查詢?舉個例子
新華字典,我們都用過吧,新華字典分為兩部分,第一部門就是目錄的邊旁部首,第二部分就是正文,一個一個字的解釋,
我們在用新華字典的時候,一般我們都是通過邊旁部首找字,沒有人一頁一頁的翻字典找字吧.
Lucene的倒排就是如此,他會檢索文本,數據庫,web網頁,在把內容分詞,就像邊旁部首
再次強調
搜索引擎(百度,谷歌)和lucene的區別
搜索引擎就是一個應用,lucene就是一個搜索工具類
name:lucene表示要搜索name這個Field域中,內容為“lucene”的文檔。
desc:lucene AND desc:java 表示要搜索即包括關鍵字“lucene”也包括“java”的文檔。
看不懂沒關系
我接下來說明Doucment和Field關系
這里我用數據庫中的一條數據說明
這一條數據就是一個document文檔
每一個字段就是一個Field域
這樣說是不是豁然開朗了.
接下來,我們說說分詞器
這個lucene是外國人搞得,對中文的支持不說你也知道,不多外國人也想到這一點,"我是中國人">>我 是 中 國 人 >> 這樣的效果其實還不是我們想要的,我們要的是"中國","國人"這樣的詞匯,這里我也不打啞謎了,市場上有很多中文分詞器,無敵的存在我覺得就是IK了,這是一個jar包,導入項目即可,說他無敵是因為他可以自己加詞,比如"屌絲","高富帥",這也詞,可以自己加到分詞器中,讓程序認得.
這就是要用到的包;
ik下載后把這3個文件也要導入項目中,ext.dic是加詞的,stop是停詞的.
前面的都是Lucece的理論,只有理論搞懂了,下面的代碼實現過程也就輕松了
//分詞 testCreateIndex() BookDao bookDao = List<Book> listBook = List<Document> documents = ArrayList<> Document doc = doc.add( TextField("id", String.valueOf(bk.getId()), Store.YES)); doc.add( TextField("name" doc.add( TextField("price" doc.add( TextField("pic" doc.add( TextField("desc" Analyzer analyzer = IndexWriterConfig config = Directory directory = FSDirectory.open( File("H:\\temp" IndexWriter writer = //查 serachIndex() Analyzer analyzer = QueryParser queryParser = QueryParser("desc" Query query = queryParser.parse("desc:java AND lucene" Directory directory = FSDirectory.open( File("H:\\temp" IndexReader indexReader = IndexSearcher indexSearcher = TopDocs topDocs = indexSearcher.search(query, 10 System.out.println("查詢到的數據總條數是:" + ScoreDoc[] docs = docID = Document doc = System.out.println("docID:"+ System.out.println("bookid:"+doc.get("id" System.out.println("pic:"+doc.get("pic" System.out.println("name:"+doc.get("name" System.out.println("desc:"+doc.get("desc" System.out.println("price:"+doc.get("price" }
網頁題目:Lucence
當前鏈接:http://m.kartarina.com/article24/pippje.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、微信小程序、小程序開發、網站設計、動態網站、Google
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯