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