使用Lucene-1.3-final在web上建立全文检索应用

idea+jfinal+lucene 主要是里面的lucene全文检索,包括建索引,查询等 立即下载

screen.width*.65)this.width=screen.width*.65" border=0 name=pic_4265>

作者:lotus

  看完Lucene-1.3-final已经有一段时间了,一直没有时间总结一下,上一篇《Lucene-1.3-final已完全支持中文的切词与检索了》只是让你明白lucene-1.3-final可以不经过任何扩充和修改就可以支持中文的检索了,既然lucene-1.3-final在application上支持中文的全文检索,那么那也一定在web上支持全文检索。下面就简单介绍一下不修改lucene-1.3-final任何东西在web上建立全文检索应用。


一、?建立运行环境
1、系统环境
本人运行环境:
  windows 2000 professional
  resin2.1.6(为什么要用resin,下面有描述)
  lucene-1.3-final其中的两个包lucene-1.3-final.jar、lucene-demos-1.3-final.jar、以及luceneweb.war用于web上的应用。
2、建立应用环境
  将luceneweb.war拷贝到resin目录下的webapps目录中,启动resin,则luceneweb.war会自动解开成一个目录luceneweb,这时删除luceneweb.war这个文件。
  将lucene-1.3-final.jar、lucene-demos-1.3-final.jar两文件拷贝到刚生成的luceneweb目录中的WEB-INF下的lib目录中。
  OK,lucene-1.3-final的应用环境已建立起来了。


二、?配置
1、建立索引文件
  假如你要全文检索的文件在D:/resin-2.1.6/webapps/index中,如在其中拷贝多个中文文件,其中也允许包含许多目录。
  注意:要检索的文件只能是htm/html/txt格式的文件,要检索其它格式的文件如word/pdf等格式的文件,就要对lucene进行扩展,这不在本文讲述的范围内。

  如果你要将对D:/resin-2.1.6/webapps/index目录中的文件建立索引文件,并将它
放入D:/resin-2.1.6/webapps/luceneindex目录中,则在cmd工作模块下,执行如下命令:
d:>cd? resin-2.1.6/webapps/luceneindex
D:/resin-2.1.6/webapps/luceneindex>java org.apache.lucene.demo.IndexHTML -create -index D:/resin-2.1.6/webapps/luceneindex ../index
(注意:你要将lucene-1.3-final.jar、lucene-demos-1.3-final.jar加入到系统的classpath中。)
则就会将D:/resin-2.1.6/webapps/index中的文件包括其中所有目录下的文件建立索引,并将索引文件存在D:/resin-2.1.6/webapps/luceneindex目录中了。
索引文件形如:
_6.f1
_6.f2
_6.f3
_6.f4
……
2、在web应用中配置索引文件目录
  在luceneweb目录中找到一个jsp文件configuration.jsp,打开编辑,将其中的第5行改为如下形式:
String indexLocation = "D://resin-2.1.6//webapps//luceneindex";你自行修改成你自己的索引文件目录。

3、一点修改
  在luceneweb目录中找到一个jsp文件result.jsp,打开编辑,将其中的第68行
?Analyzer analyzer = new StopAnalyzer();?????????????? //construct our usual analyzer
  修改成如下:
Analyzer analyzer = new StandardAnalyzer();

  注意:因为使用到StandardAnalyzer类,所以要先此类引入此jsp文件中。
  如果不修改这一句只能检索到英文内容,修改后就完全可以检索中文了。

  另:将<%@ page language="java" contentType="text/html;charset=GBK"%>添加到result.jsp的第一行,以正确显示中文结果。

好了,大功告成,可以运行了。

三、?运行结果
  重新启动resin,在浏览器地址输入:http://localhost/luceneweb/index.jsp
  出现如图界面,输入要检索的关键字,如:语法检查,点search按钮。
  结果就出来了,如图所示,可以看出结果有两个,一个是html文件,一个是txt文件。
?

四、?后记
  1、?上面对result.jsp文件进行的一点修改我觉得其实可以很容易理解,因为切词用的就是StandardAnalyzer,所以检索时也应该用这个,然后才能正确检索结果。
  2、?我选resin作测试的目的就因为它的request的编码方式为GBK,所以不需对输入的关键字进行编码转换。如果使用tomcat作为webserver,则取得检索关键字时应对其进行编码转换,将iso-8859-1转为GBK,如何转换就不必我多讲了。
  3、?可以看出没有对lucene-1.3-final进行任何修改,就可以在WEB上进行中文的全文检索了,就说爽不爽!:)只要对本demo稍加修饰,就可以将其应用到实际应用中。
  4、在实际应用中,可以建立定时任务,对系统中的某个目录中的所有文件定时建立索引,也可以使用线程,在web应用中每延时一段时间就建立索引一次,这样就可以对系统中的新内容进行全文检索了。
  5、?本例只能对html、htm、txt文件进行检索,要检索其它文件,如pdf、word、excel、xml其实也不难,lucene-1.3-final本身支持所有文档,关键看你怎么将这些文件传给它,如何做,请参阅其它资料。

LUCENE实例 CreateLucene.java 增量生成索引 CreateLuceneAll.java 全量生成索引 CreateLuceneInter.java 按照时间区间生成索引 里面为参考代码,使用lucene-core-2.9.0.jar 立即下载

相关推荐

jfinal框架编写的后台管理模板样例 基于lucene搜索查询

jfinal框架编写的 后台管理模板样例 基于lucene搜索查询实现智能客服的样例 包含基础数据库

ES搜索(ElasticSearch)(一) JFinal整合

ElasticSearch简介: ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案,其第一个版本于2010年2月出现在GitHub上并迅速成为最受欢迎的项目之一。 ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 ElasticSearch新旧版本之间的语法以及API变化比较大,使用时请参考官方文档。 官方参考文档 添加p

YLJ_优快云的博客 833

基于JFinal的开源博客系统JFinal_Blog1.1版本

JFinal_Blog是基于JFinal1.5开源系统搭建的博客系统,以91zcm.com 网站作为模板和演示事例,目前已经加入了开源行列。 JFinal_Blog 1.1版本发布新增功能点: 1、将数据库连接池由C3P0升级为Druid实现; 2、废弃WEB-INF下的数据库连接配置,改用conf下的config.properties来实现配置; 3、将上一个版本留下的SQL模糊Like搜索功能修改为Lucene实现; 4、添加EhCache支持,对首页、列表、标签等叶面做数据缓存; 5、添加"91专题"栏目,将重点添加一些专题文章来提高搜索引擎的收录数量; 6、修复kindeditor上传图片、文件出现404错误的bug; 7、将MyEclipse中运行的启动类独立成com.zcm.starter.Starter.java方便启动。 介绍地址:http://www.91zcm.com/free/429.html(91注册码)

Lucene学习总结

Lucene是当下十分流行的开源全文检索工具,在很多网站和系统中都得到了广泛应用(开源中国就是使用Lucene)。本人学习Lucene时间不长,水平有限,目前也还在学习探索阶段。现在将学习ucene过程中的知识点做以总结和归纳,期待和大家共同交流。Lucene并不是现成的搜索引擎,只算的上是J...

chenqiang8644的博客 181

Windows 11下用Ollama一键部署DeepSeek-R1大模型(附8B/14B版本选择建议)

本文详细介绍了在Windows 11环境下使用Ollama工具一键部署DeepSeek-R1大模型的完整指南,包括8B和14B版本的选择建议。通过硬件评估、安装配置、性能优化等步骤,帮助开发者高效实现本地部署,提升AI应用体验。

weixin_29079643的博客 272

告别双系统!用Ventoy把Ubuntu 22.04装进U盘,打造你的随身开发环境(附保姆级避坑指南)

本文详细介绍了如何使用Ventoy将Ubuntu 22.04安装到U盘,打造便携式开发环境。通过即插即用的特性,开发者可以在任何x86电脑上快速启动完整的Ubuntu系统,无需配置双系统或虚拟机。文章提供了从硬件准备到系统优化的全流程指南,帮助用户高效创建随身开发环境。

weixin_31569671的博客 364

Lucene开发环境配置;Lucene开发包中Demo调试。

一、Lucene开发环境配置step1.Lucene开发包下载下载地址1:http://mirror.vmmatrix.net/apache/lucene/java/下载地址2:http://apache.justdn.org/lucene/java/从中选择合适的版本,本文使用lucene-1.9.1.zip。step2.Java开发环境配置(略)本文使用jdk1.5.0

syimiaoa的专栏 756

AXI4协议之AXI4-Lite接口详解及实战

本文首先对AXI4总线协议进行了一个简单的介绍,然后使用vivado提供的模板创建了一个AXI4-Lite Master的接口,并生成了一个具有Master和Slave的代码实例,阅读该示例代码,进行修改后用于自己的项目。

高阶近似的博客 2万+

【Lucene3.0】 Analyzer

一个优秀的IR system要做好的第一件事就是利用自然语言处理技术(NLP)对文本进行分析。其中分词是最基本的,其性能直接决定IR system的搜索精度和速度。因此,大型Web搜索引擎都有自己的分词工具。 Lucene3.0 的分析器由三个包组成: (1) org.apache.lucene.analysis 是Lucene分析器的基本结...

weixin_34247155的博客 133

手把手教你学Simulink——基础储能管理场景实例:基于Simulink的压缩空气储能(CAES)系统简化模型仿真

本文介绍了基于Simulink的压缩空气储能(CAES)系统简化模型仿真方法。CAES作为大规模长时储能方案,相比锂电池具有成本低、寿命长等优势。文章详细讲解了AA-CAES系统组成、热力学建模理论,以及Simulink实现流程,包括储气室、压缩机、膨胀机等核心模块的建模方法。通过8小时充电(50MW)和6小时放电(40MW)的仿真,验证了系统可实现60%往返效率。该模型为理解CAES系统运行机制提供了实用工具,并指出热管理、储气室特性等工程实践要点,为新型电力系统储能规划提供了仿真基础。

MHD0815的博客 171

使用SSC添加大量的SDO条目

使用SSC添加大量的SDO条目 SSC用表格添加SDO,PDO部分必须指定到0x1600和0x1A00分配TxPdo和RxPdo映射,在0x1C12和0x1C13分别分配到SM2和SM3。在0x6000和0x7000未指定的entry就是SDO部分。

PI_sunyang的博客 3167

Lucene 课程设计 检索.doc,.pdf,.html,.execl,.txt格式文件

      又花了大概一个星期的时间,终于写完了信息检索的课程设计,快考试,还没复习,整天写个门课的实验...      利用Lucene开源软件,实现了检索.doc,.pdf,.html,.execl,.txt等常见格式的文件,检索结果给出文件所在的路径      课设中用到的各软件包为:lucene2.4.0,apache-tomcat-6.0.16,poi-bin-3.2-FINAL

CNnumen 1650

【实战教程】BMAD-METHOD 入门教程:用 AI 组建你的“七人开发团队”

简单说,BMAD-METHOD 就像一个会自己运转的“AI 软件公司”。它不是某个单一应用,而是一种AI 工作流方法论—— 把一个项目拆解成多个角色(产品、架构、前后端、测试、运维等),每个角色由一个 AI 智能体负责协作,就像你真的在带一个 7 人团队。GitHub 项目地址 👉目前 Star 数已经达到了恐怖的 20k,可见这套方法的影响力不小。BMAD-METHOD 的核心理念不是“生成代码”,而是“自动化协作”。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1624

Spring Boot 3 整合 Elasticsearch 8

Spring Boot 3整合Elasticsearch 8实践指南 本文详细介绍了如何在Spring Boot 3项目中整合Elasticsearch 8,实现全文检索功能。主要内容包括: 技术选型:推荐使用Spring Data Elasticsearch提供的ElasticsearchRepository和ElasticsearchOperations 环境搭建:通过Docker快速启动单节点Elasticsearch服务 项目配置: 添加必要的Maven依赖 配置application.yml连接参

wang20000102的博客 398

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WebProtégé架构演进:从单体应用到微服务协作本体开发平台的技术挑战与解决方案

在语义网和知识图谱技术快速发展的背景下,企业级本体开发面临团队协作效率低下、版本管理混乱、部署复杂度高等核心挑战。WebProtégé作为斯坦福大学医学院生物医学信息学研究中心开发的协作式本体编辑平台,通过现代化的Web架构重新定义了本体开发工作流,将传统桌面工具的局限性转化为团队协作优势。 ## 问题诊断:传统本体开发工具的技术债务与协作瓶颈 ### 案例场景:企业知识图谱构建的协作困境 某

gitblog_00313的博客 654

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

DC2靶场实战:从信息收集到权限提升的完整渗透测试指南

渗透测试是网络安全领域的核心实践,旨在通过模拟攻击来评估系统安全性。其基本原理遵循标准攻击链:信息收集、漏洞扫描、利用和权限提升。在Web安全中,WordPress作为广泛使用的内容管理系统,常因插件漏洞、弱密码和配置错误成为攻击入口。通过工具如WPScan进行用户枚举和漏洞扫描,结合Hydra进行密码破解,可以获取初始访问权限。获得Web Shell后,通过建立反向Shell实现持久化访问,并利用SUID文件滥用或sudo配置错误进行权限提升,最终获取系统完全控制。本文以DC2靶场为例,详细演示了这一完整

weixin_34195546的博客 437

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OpenSearch 3.7原生集成Prometheus:可观测性架构拐点

时序数据库(TSDB)与搜索分析引擎的融合正成为现代可观测性基础设施的核心趋势。其原理在于打破指标、日志、追踪数据的存储与查询壁垒,通过统一索引模型和原生查询语言实现语义级协同。技术价值体现在降低运维复杂度、提升查询性能与保障数据一致性——例如OpenSearch 3.7将Prometheus指标转为原生索引,支持纳秒级时间戳、标签扁平化及PPL下推计算。典型应用场景覆盖SLO实时计算、根因分析(RCA)、AIOps异常检测等高阶运维需求。对于正在探索opensearch 怎么安装部署或prometheus

aiqixiao2017的博客 409

三、elasticsearch之插件x-pack许可证安装说明

概要 在elasticsearch中有30天的试用期,我找到网上大神的一些文章,试用了之后发现可以进行破解使用,整个过程比较简单,特此写下笔记 http://ip:9100/?auth_user=elastic&auth_password=123456 现在发现都访问不了,查了下日志才发现,我的license过期啦! 这时我才想起来x-pack好像是收费的。 破解x-pack 我的版本是x-pack-5.2.2,在elasticsearch插件中找到x-pack-5.2.2.jar,拷贝到其他目

Bertram的博客 1274

毕业设计实战:基于Spring Boot的冷链温控监控系统开发指南

物联网系统开发是计算机专业实践的重要方向,其核心在于通过传感器数据采集、网络传输与业务处理,实现对物理世界的数字化监控与管理。在技术原理上,通常采用分层架构,涉及数据采集层、网络传输层、服务处理层与应用展示层,关键技术包括实时数据处理、业务规则引擎与数据可视化。这类系统的技术价值在于将软件工程、数据库技术与特定行业场景深度融合,锻炼开发者的全栈能力与系统思维。在生鲜物流、医药仓储等应用场景中,温湿度监控是典型需求,常作为毕业设计选题。本文以“冷链监控平台温控系统”为例,提供一套涵盖需求分析、技术选型、数据库

weixin_30475039的博客 368

Java 中间件:Elasticsearch 分词器自定义(IK 分词扩展词库)

摘要 本文详细介绍了如何在Java项目中为Elasticsearch自定义IK分词器扩展词库,以提升中文搜索的准确性和业务适配性。主要内容包括: IK分词器的必要性 Elasticsearch默认分词器对中文支持不足,IK分词器能更好地处理中文语义 但仍需扩展词库以覆盖新词、专业术语和业务词汇 配置与集成 安装与Elasticsearch版本匹配的IK插件 验证分词效果并集成Java REST Client 扩展词库实践 通过本地词典文件和远程热更新机制添加自定义词汇 动态加载新词以支持实时业务需求 业务价

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

SpringBoot+Vue+MySQL构建课程作业管理系统实践

在现代Web开发中,前后端分离架构已成为主流技术方案。SpringBoot作为Java领域的轻量级框架,通过自动配置和Starter机制显著简化了后端开发;Vue.js则以其响应式特性和组合式API,为前端开发提供了高效解决方案。结合MySQL关系型数据库,可以构建稳定可靠的数据存储层。这种技术组合特别适合教育管理系统开发,能够有效解决传统作业管理中的流程繁琐、数据统计困难等痛点。通过RESTful API实现前后端通信,利用WebSocket支持实时通知,配合Nginx实现生产环境部署,最终打造出功能完整

chiman6219的博客 307

史上最全阿里技术面试题目

题目目录 技术一面(基础面试题目) 技术二面(技术深度、技术原理) 项目实战(项目模拟面试) JAVA开发技术常问的问题 阿里必会知识 阿里面试范畴 阿里面试总结 一:阿里技术一面(基础掌握牢固) 常用的异常类型?* session java锁【java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁】 gc原理* hashmap listlink arraylist ...

look4liming的专栏 672

基于BM25与Graphiti构建高效全文搜索服务的实战指南

在信息检索领域,相关性评分算法是搜索引擎的核心大脑,它决定了搜索结果的质量与排序。BM25作为经典的改进型概率模型,通过引入非线性词频饱和度和文档长度归一化,克服了传统TF-IDF对长文档的偏向性,能更精准地反映文档与查询的语义相关性。这一原理使其在文档检索、内容推荐等场景中具有重要技术价值。结合Graphiti这类声明式查询规范,开发者可以构建灵活、高效的API接口,实现精确的数据获取与组合查询。本文通过一个集成BM25全文索引与Graphiti查询支持的实战案例,展示了如何从零搭建一个兼具高相关性与查询

weixin_34221332的博客 401
上一篇: 五禽操帮电脑族找回活力
下一篇: 日语学习网站集锦
rijcm
博客等级 码龄25年 1粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值