浏览 444 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-03-28
我正在做一个web项目,使用工具java,基本框架ssh,数据库sqlserver,遇到一个海量数据检索的问题:需要从数据库中2000万以上的商品类数据中,直接检索到要查询的商品列表信息,如我查询关键词“钢圈”,要所有包括“钢圈”的商品都分页显示出来。
我曾采用以下方法 1、sqlserver自带全文索引,存在速度太慢、检索不准确的问题 2、采用把这些企业数据放到java缓冲中,走不下去了,问题是不现实,因为我用tomcat作为服务,内存有限制,这些数据根本放不下,还有我采用只知道采用iterator方法来遍历这些数据,所以就不用了 3、听说lucene在做这方面工作有优势,奈何我还不知道还怎么使用,还有听说也存在检索不准确的问题,所以就暂时放弃了 现在只好把这些数据按大类别分了几十个表,查询的时候也必须选择这些大类别,在录入查询的关键词进行搜索才暂时可以使用了。 请教各位老师有什么办法可以象“百度,google”一样的搜索关键词呢? 不胜感谢! 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-03-19
把常用的数据挖掘方式找一下.
能想到的只有你没有把分页加上? |
|
| 返回顶楼 | |
|
最后更新时间:2008-08-27
谢谢“抛出异常的爱”
|
|
| 返回顶楼 | |
|
最后更新时间:2008-08-27
目前的搜索大体分通用搜索和垂直搜索。
两者差别在于信息来源,通用的范围很广,所以数据量一般都是海量。垂直的信息来源比较单一,所以数据量相对而言就小。 技术角度而言,通用主要关注数据量,偏重架构设计,而垂直着重搜索的UI。 如何设计好一个架构,我觉得自己还在摸索,所以不多说,感兴趣的可以看看google的paper。 垂直搜索的面向是特定用户群,他们需要的是准确快速方便的找到自己想要的信息。所以如何将用户体验做好,这个难度在这里。 因为是要通过搜索表现结果,那么就需要结合搜索。 举几个例子现在不大好的垂直搜索: google的生活频道搜索,一大堆搜索条件让人选择,这明显是不懂搜索的人做的。 还有些搜索,对自身业务没搞清,就往通用靠拢,根据搜索关键词来拉出些相关词。 国内我觉得不错的垂直, taobao。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-08-27
一个完整的垂直搜索生命周期包括:
Crawl:抓取足够多的数据; Extract:从数据中解析出需要的内容存储起来; Index:做索引; Sort:基于相关性算法进行排序 UI:把结果对用户友好的方式表现出来。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-08-27
数据库是MSSQL2005,有一张表有四百多万条记录,表结构为: ID,类别,访问时间 现在要统计某段时间内每个类别的访问量,我写的sql语句是 select 类别,count(1) as 访问量 from 数据表 where 访问时间 between '2007-9-1 ' and '2007-9-7 ' group by 类别 select 类别,count(1) as 访问量 from 数据表 where 访问时间 between '2007-9-1 ' and '2007-9-7 ' group by 类别 ---------- 你写的这个语句是没有优化的余地了,如果你想提高查询效率的话 可在[访问时间]列建立非聚簇索引 不知LZ你对这张表插入和更新频不频繁??? (索引可提高查询效率,但同时又减慢插入或更新的效率) |
|
| 返回顶楼 | |




