摘要:一個簡單的工具類,通過注釋的方式來配置構建索引的字段。提供新建索引查找刪除更新方法,支持分頁。代碼地址所需包背景以前在做某個的時候,鑒于存儲在中的數據量過大,故使用來優化查找性能。那么這個工具類就比較適合這些場景了。
wsm-lucene
一個簡單的Lucene工具類,通過注釋的方式來配置構建索引的字段。提供新建索引、查找、刪除、更新方法,支持分頁。代碼地址:https://gitee.com/shaojiepeng...
所需jar包lucene-core:2.4.0
lucene-analyzers:2.4.1
commons-logging:1.2
背景以前在做某個feature的時候,鑒于存儲在DB中的數據量過大,故使用Lucene來優化查找性能。
相信大家在某些場景下會把DB中的數據讀出來,建索引來優化查找。那么這個工具類就比較適合這些場景了。
從附件中下載jar包直接導入到項目中,或者下載此Maven項目的源碼,使用項目依賴的方式導入你的項目。
通過注釋的方式配置需要構建索引的model類
**@IndexClass** :注釋,說明此model類需要構建索引 **indexDirPath** :索引所存放的物理位置,如:"D:/Index" **@IndexField** :注釋,說明此字段需要構建索引 **fieldStore** :Lucene中的Field.Store同義,不懂請自行查詢資料 **fieldIndex** :Lucene中的Field.Index同義,不懂請自行查詢資料
創建索引
IndexService indexService = new IndexServiceImpl(); /** 構建索引的接口 * List:model的集合 * Class: model的class * * return boolean **/ indexService.buildIndex(List, Class)
3.查找
ArrayListsearchParams = new ArrayList<>(); /**添加查詢的條件,如果有多個查詢條件,則添加SearchParamModel * fieldName:需要查找的字段,即model中的成員變量 * fieldValue:需要查找字段的值,這個不解釋 * BooleanType:Lucene中BooleanClause.Occur值,不懂請自行查詢資料 **/ searchParams.add(new SearchParamModel(fieldName, fieldValue, BooleanType)); IndexService indexService = new IndexServiceImpl(); /** 查詢的接口 * searchParams:不解釋 * Class: model的class * * return model的集合 **/ List objs = indexService.search(searchParams, Class);
IndexService中還支持update, delete和分頁查找的方法,請自行查閱代碼。
覺得不錯,請點個贊吧。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70634.html
摘要:就其本身而言,是當前以及最近幾年最受歡迎的免費信息檢索程序庫。這樣完全和數據庫進行了隔離。當一個文檔出現在了搜索結果中,這就意味著該文檔與用戶給定的查詢語句是相匹配的。 showImg(https://segmentfault.com/img/bVbuifx?w=258&h=258);公眾號閱讀https://mp.weixin.qq.com/s/M3... Lucene [TOC] ...
摘要:倒排索引是基于詞的搜索。關于倒排索引要學習搜索引擎,就需要了解倒排索引,要更加深刻地理解倒排索引,就要先了解什么是正排索引表。由于不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引。 Lucene是什么? Lucene是apache軟件基金會4 jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎,而是一個全文檢索引...
摘要:介紹如何優化數值類范圍查詢。查詢過程在中查詢是基于。在中為了查詢的這樣一個條件,會建立基于的倒排鏈。在單查詢上可能相比并沒有明顯優勢,甚至會慢一些。所以為了支持高效的數值類或者多維度查詢,引入類。 前言 Lucene 是一個基于 Java 的全文信息檢索工具包,目前主流的搜索系統Elasticsearch和solr都是基于lucene的索引和搜索能力進行。想要理解搜索系統的實現原理,就...
摘要:介紹如何優化數值類范圍查詢。查詢過程在中查詢是基于。在中為了查詢的這樣一個條件,會建立基于的倒排鏈。在單查詢上可能相比并沒有明顯優勢,甚至會慢一些。所以為了支持高效的數值類或者多維度查詢,引入類。 前言 Lucene 是一個基于 Java 的全文信息檢索工具包,目前主流的搜索系統Elasticsearch和solr都是基于lucene的索引和搜索能力進行。想要理解搜索系統的實現原理,就...
閱讀 3574·2019-08-30 15:55
閱讀 1373·2019-08-29 16:20
閱讀 3656·2019-08-29 12:42
閱讀 2661·2019-08-26 10:35
閱讀 1010·2019-08-26 10:23
閱讀 3405·2019-08-23 18:32
閱讀 897·2019-08-23 18:32
閱讀 2892·2019-08-23 14:55