`
彭微肿君
  • 浏览: 649 次
社区版块
存档分类
最新评论

wsm-lucene 一个简单的Lucene工具类

阅读更多

代码地址: https://gitee.com/shaojiepeng/wsm-lucene

wsm-lucene

一个简单的Lucene工具类,通过注释的方式来配置构建索引的字段。提供新建索引、查找、删除、更新方法,支持分页。

所需jar包

  1. lucene-core:2.4.0
  2. lucene-analyzers:2.4.1
  3. commons-logging:1.2

背景

以前在做某个feature的时候,鉴于存储在DB中的数据量过大,故使用Lucene来优化查找性能。 相信大家在某些场景下会把DB中的数据读出来,建索引来优化查找。那么这个工具类就比较适合这些场景了。

如何使用

从附件中下载jar包直接导入到项目中,或者下载此Maven项目的源码,使用项目依赖的方式导入你的项目。

  1. 通过注释的方式配置需要构建索引的model类
 **@IndexClass** :注释,说明此model类需要构建索引
 **indexDirPath** :索引所存放的物理位置,如:"D:/Index"

 **@IndexField** :注释,说明此字段需要构建索引
 **fieldStore** :Lucene中的Field.Store同义,不懂请自行查询资料
 **fieldIndex** :Lucene中的Field.Index同义,不懂请自行查询资料

输入图片说明

  1. 创建索引
IndexService indexService = new IndexServiceImpl();
/** 构建索引的接口
 * List:model的集合
 * Class: model的class
 *
 * return boolean
**/
indexService.buildIndex(List, Class)

输入图片说明

3.查找

ArrayList<SearchParamModel> searchParams = 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和分页查找的方法,请自行查阅代码。

觉得不错,请点个赞吧。

 

分享到:
评论

相关推荐

    WSM-315主控板.pdf

    根据提供的信息,我们可以推断出该文档主要涉及的是WSM-315主控板的电路设计图及相关组件...总结来说,WSM-315 主控板是一个高度集成且功能强大的电路板,它通过精心设计的电路布局和选材,确保了设备的可靠性和性能。

    WSM-315整机.pdf

    根据提供的信息,我们可以推断出这是一份关于WSM-315整机的设计文档或电路图的一部分。尽管文本信息非常有限且不完整,但从已有的数据中,我们可以提取一些关键的技术信息和知识点。 ### 1. 整体概述 WSM-315整机...

    逆变电焊机WSM-160原理图

    一份非常好的电焊机原理图百分百正确,内部资料

    WSM-315面板.pdf

    根据提供的信息,我们可以推断出该文档主要涉及的是电子电路设计和元件应用,...这些元件共同构成了一个复杂而精细的电路系统,用于实现特定的功能。对于从事电子工程设计的专业人士来说,这份文档具有很高的参考价值。

    lcd.rar_ WSM-6866B_COG12864 pdf IIC_IIC_LCD iic_WOM12864 PDF

    总结来说,"lcd.rar"压缩包提供的资料涵盖了WSM-6866B COG12864和WOM12864这两款IIC接口LCD的驱动源码及相关说明,对于想要在单片机项目中使用IIC接口LCD的开发者来说,这是一个宝贵的资源。通过学习和理解这些源码...

    小米wsm工具箱

    小米wsm工具箱 小米专用框架 神器 可修改很多

    WSM-开源

    在IT领域,尤其是服务器管理和Web开发中,WSM(Windows Service Manager)是一个重要的工具。WSM是一个专门为PHP开发的扩展,其核心功能是允许开发者通过PHP脚本对Windows操作系统中的服务进行管理。这个开源项目为...

    wsm-vector-space-model:网络搜索和挖掘-向量空间模型

    向量空间模型Web挖掘和搜索课程实践项目在实践中建立向量空间模型,以通过用户查询检索相关性最高的前10个文档。如何运行代码启动环境pip install -r requirements.txt 跑步python main.py --query {query_str} 注意...

    API-pour-les-nuls-WSM14025FRFR-3-of-5.pdf

    假设一家公司希望开发一个移动应用,该应用需要显示天气预报信息。这家公司可以选择自己开发一套完整的天气预报系统,但这需要大量的时间和资源。相反,通过使用像OpenWeatherMap这样的第三方API,该公司可以直接在...

    H3C iMC WSM无线业务管理组件-产品白皮书.pdf

    "H3C iMC WSM无线业务管理组件" H3C iMC WSM无线业务管理组件是基于iMC智能管理平台的无线业务管理解决方案,旨在为管理员提供一体化的有线无线管理能力。该组件可实现无线网络的集中管理、监控和维护,满足越来越...

    WSM批量PingForExcelV1.60免费绿色版

    WSM批量Ping For Excell是一个基于Excel开发的批量ping工具,其最主要的功能是批量ping ip地址检测网络连通状况,支持实时显示延迟,支持自动循环ping,缺点是必须运行在Excel中,还需要打开Excel宏功能,不安装...

    wse315焊机原理图

    4. **变压器与电感**:虽然逆变焊机减少了传统大型变压器的使用,但在WSE200模型中,可能仍会包含一个小型的调整变压器和电感器,用于进一步调节电流和稳定焊接过程。电感器可以平滑电流波形,防止电流突变,确保...

    IBM AIX WSM

    它允许管理员通过Web界面来管理和配置AIX系统,提供了一个图形化管理环境,简化了系统管理的复杂性。WSM是AIX操作系统5.3版本以及后续版本支持的管理工具,为用户提供了远程管理和配置系统的便捷方式。 从描述中...

    iMC WSM WLAN配置举例.pdf

    iMC WSM是一个强大的无线网络管理系统,它结合了iMC和华三的无线设备,旨在为用户提供高效、灵活的无线网络部署和管理。 **1. 组网需求** 在配置WLAN时,首先要明确组网需求。这通常涉及到以下几个方面: - 覆盖...

    WSM200整机.pdf

    根据提供的信息,我们可以推断这份文档“WSM200整机.pdf”主要涉及的是一个电子设备或系统的电路设计及元件列表。虽然标题、描述和标签并没有提供具体的信息,但从部分展示的内容来看,该文档包含了详细的电路图以及...

    WSM315G高频板.pdf

    - **电阻器**:例如“1KVR222RR33W/10K”表示一个标称值为1kΩ的电阻器,其精度为±1%,功率等级为1/8瓦特。 - **电容器**:如“C1102/630V”代表一个容量为110pF,耐压为630V的电容器。 - **二极管**:例如“IN4007...

    WSM_自动telnet程序

    自动运行格式(可多个同时运行): WSMTelnet IP地址,端口号,登陆用户名,密码,相关指令集文件 自动运行时特殊指令说明(手工操作时无效): #\换屏,tty08# 换屏至tty08,可选范围01~12 #\清屏,tty10# 清除第tty10内容,可...

    wsm汉化框架箱

    基于miui系统框架 适合改状态栏等一系列需要框架才能完成的想法

    Lenovo X 6 培训PPT

    - WSM-EX 支持最多八个插槽的配置,并增强了 RAS(Reliability, Availability, and Serviceability)特性。 #### Intel Xeon 处理器 E7-8800/4800/2800 v2 产品家族 (IVB-EX) - **IVB-EX** 指 Ivy Bridge-EX,这是...

Global site tag (gtag.js) - Google Analytics