lucene搜索开发遇到的问题:检索不到数据

在使用Lucene进行搜索开发时,遇到JSP环境中无法检索到数据的问题。经过排查,发现是由于JSP编译后的servlet路径与原始JSP文件不同,导致index目录无效。将索引文件移到正确位置并调整编码设置后,成功解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近使用lucene开发一个搜索,在jsp下调用API始终找不到数据,把相同的代码写到servlet中测试,却可以检索到数据,在优快云上发帖,等待了一天,yiquanwen 给了个很启发的答案,原文地址:

http://topic.youkuaiyun.com/u/20090317/16/23ae6e45-9364-4664-9ef6-e9fb889dc0dd.html

 

平常学习JSP和servlet时候,知道jsp最后需要编译成servlet,但是jsp编译后的servlet没有放在原来jsp同一目录下,而是到了其他目录(这个大概根据servlet容器不同而不同),所以JSP中index的目录就无效了,编译后的servlet找不到index所以就检索不到结果。后来我在tomcat的work目录下,一层一层找下去,找到jsp对应的servlet所在文件夹,把index拷贝过去,还是路径不对,最后把index拷贝到tomcat根目录下,找到index目录了,但是出现索引的片段的啥啥问题,不管了,直接把索引程序生成索引的目录改到这里,再重新建立索引,居然可以了。

总结两点,lucene检索不到数据,大概是index目录没有找到,或者检索的字段拼写有误,

例外,索引文件好像不能随意拷贝来拷贝去的,我经验,能不能需要进一步确定。

 

开发中还遇到:

在jsp中调用lucene的API检索数据,有的关键字可以检索,有的不可以检索到数据,不可以检索到数据的关键字并不是不存在,我用JAVA程序测试,它们的确是有数据的,我想大概是JSP页面传递的一个编码问题,在群里发了个提问,
㊣左边の情缘
10:10:10
在tomcat里设置一下,可能是get方式提交的时候出现了问题。
在配置访问端口的地方加个 URIEncoding="utf-8"

就在serve.xml的<Connector port="8080" protocol="HTTP/1.1"
               maxThreads="150" connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />

改动下,网页设为utf8编码,居然正常了。

总算使lucene在jsp下正常跑了,总结上面经验,供大家遇到问题时参考,少耽误开发时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值