lucene小问题,大家捧捧场。

小雨转晴 2008-07-15 11:22:13
刚看lucene,现在我用lucene做全文检索...我的数据有19W条。

1、是把数据全部生成lucene库(当然我知道这个是用空间换时间,这个不是问题),以后就检索lucene库好,还是把【需要检索

的字段和id】生成lucene库,然后找到id,去查询数据库?

2、如果是把所有数据都生成lucene库,那么当搜索完毕,分页后,根据id查询帖子信息的时候,是检索数据库?还是检索

lucene库?如果是检索lucene库?怎么根据id检索?

3、根据id检索的同时还要查出id的上一条和下一条,id自增,但不连续(如:1、4、5、6、9、11)。

新手求知,望大家多多指教。谢谢大家。
...全文
455 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
把你需要的数据生成LUCECE,不要用查询数据库了,然后根据查询的结果集进行分页!!
查询上一条、下一条得查询数据库
查询上一条,查询小于此ID的第一条,order by id desc
查询下一条,查询大于此ID的第一条,order by id asc
zidasine 2008-07-15
  • 打赏
  • 举报
回复
再一次顶起来
希望高手尽快来回复
关注
CSDN_0 2008-07-15
  • 打赏
  • 举报
回复
竹子也没这方面的研究.

小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
我想一下 就算是在lucene库中用id检索,那么查出来对应的一条数据以后,要想要上下条的话还是要遍历集合。估计这种方式不

可取。我只是初探lucene,还望高手多多指教。不知道我描述的够不够清楚。C友说我10句懂5句。- -!

不清楚的地方,大家尽管问啊,我马上恢复,谢谢大家了。

竹子 哪去了呢???
AwL_1124 2008-07-15
  • 打赏
  • 举报
回复
这个不会·
学习了·
zidasine 2008-07-15
  • 打赏
  • 举报
回复
帮小雨顶 。。。
让帖子始终浮着
小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laorer 的回复:]
对lucene没研究,反正觉得小心内存溢出就是了

根据id检索的同时还要查出id的上一条和下一条,id自增,但不连续(如:1、4、5、6、9、11)。
你就先查出上一条id和下一条id呗
[/Quote]

就给了当前这条的id,怎么查上一条和下一条的id?


问题貌似又复杂了,id的上一条和下一条还要和我id内容是相关的
(比如id15300是关于雅思的,上下的两条应该也是的),

高手解答。

谢谢了!
laorer 2008-07-15
  • 打赏
  • 举报
回复
对lucene没研究,反正觉得小心内存溢出就是了

根据id检索的同时还要查出id的上一条和下一条,id自增,但不连续(如:1、4、5、6、9、11)。
你就先查出上一条id和下一条id呗
小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
谢谢 小z 不问了 结贴!
zidasine 2008-07-15
  • 打赏
  • 举报
回复
继续顶下
小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
如果给定id ,查询出这条id对应的数据

怎样带出这条数据信息内容相关的数据几条数据呢?

比如这个id是关于雅思的,我还想取关于雅思的一部分内容。

但是如果我这么访问www.test.com/infoID=123过去 我怎么

查询相关的内容呢?

还望赐教!
小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 sdc_java 的回复:]
你要把你的索引的字段是否要做为被搜索的条件,这样还要去分词,对于你说的ID,我觉的已经查出数据后,肯定通过唯一ID去查数据库,然后具体信息,对于lucene字最强的是做全文检索,我建义你看下我写的http://www.blogjava.net/sundc/archive/2007/10/22/155129.html 不知道对你有帮忙不,里面的很多的lucene方面的
[/Quote]

我在看你blog....
小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 java2000_net 的回复:]
1 当然是把需要检索的加入了,那些不检索的你索引有啥用
2 如果你的搜索结果可以满足显示的需求,就无需检索数据库,直接用搜索的结果显示就行了
3 我还没注意检索是否有类似 limit 10,5 的功能,我一般只检索出符合条件的ID,放到一个数组,然后就自己分页了。

而上一页下一页,可以第一次检索出来,返回一个数组,自动有了上下了,
或者下一个时,再次检索,拿到也行。

不过我个人建议把检索的数组保存起来,不要…
[/Quote]

我想的是,因为id,content,tag三个字段都索引了,剩下的就没几个字段了,我想如果都索引了,就能省掉数据库了。

好吧,我现在决定用id来查询数据库,获取单条的数据了,这样上下一条也方便获得了。

现在就差这里了 我的URL访问帖子的时候要求www.test.com/infoID=1000,

这样的形式访问,但是我还有个参数要带过去,但是不能出现在URL里。

我曾尝试用hidden 存储检索时候的内容,action里取到,然后在存入request,

到帖子页的时候,在放到hidden,如此循环,不过我发现这个并不可行,

如果直接在地址栏输入www.test.com/infoID=234的话,根本没有检索过的内容,所以request里面根本就没有值,

也就是我的方法失败了。
sdc_java 2008-07-15
  • 打赏
  • 举报
回复
你要把你的索引的字段是否要做为被搜索的条件,这样还要去分词,对于你说的ID,我觉的已经查出数据后,肯定通过唯一ID去查数据库,然后具体信息,对于lucene字最强的是做全文检索,我建义你看下我写的http://www.blogjava.net/sundc/archive/2007/10/22/155129.html 不知道对你有帮忙不,里面的很多的lucene方面的
老紫竹 2008-07-15
  • 打赏
  • 举报
回复
关于搜索的ID,你应该在一些大的网站看到过,你分页时,后面有一个类似于?forumsearchid=fdsiofajdklsjafdfnsjkafnsd

的东西,这个就是标识每个搜索的结果标识。

最典型的就是 verycd.com 的搜索
老紫竹 2008-07-15
  • 打赏
  • 举报
回复
关于搜索的ID,你应该在一些大的网站看到过,你分页时,后面有一个类似于?forumsearchid=fdsiofajdklsjafdfnsjkafnsd

的东西,这个就是标识每个搜索的结果标识
老紫竹 2008-07-15
  • 打赏
  • 举报
回复
1 当然是把需要检索的加入了,那些不检索的你索引有啥用
2 如果你的搜索结果可以满足显示的需求,就无需检索数据库,直接用搜索的结果显示就行了
3 我还没注意检索是否有类似 limit 10,5 的功能,我一般只检索出符合条件的ID,放到一个数组,然后就自己分页了。

而上一页下一页,可以第一次检索出来,返回一个数组,自动有了上下了,
或者下一个时,再次检索,拿到也行。

不过我个人建议把检索的数组保存起来,不要重复检索了。比如放到session里面,或者一个跟检索id关联的map里面

小雨转晴 2008-07-15
  • 打赏
  • 举报
回复
【顶者一样有分,大家帮忙哈】
kite77777 2008-07-15
  • 打赏
  • 举报
回复
没玩过,资料也看不太懂!
惭愧!
fuyou001 2008-07-15
  • 打赏
  • 举报
回复
顶小雨
加载更多回复(9)

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧