海量短文本处理,能否改进

ZhaoDaBing79 2014-09-18 01:24:39
场景:在Oracle 11g 中每天存储50个G的短文本(不到一百)。现在的工作模式:搜索一段时间内这个库的全部数据,然后再对全搜到数据用关键词检索。

问题:速度很慢 三个小时的数据要半个小时才能检索的到,很慢。对关键词检索出来的数据依靠人工挨个看,效率很低。


请大家提提解决方案,怎么才能有效提升工作效率。另外,暂时hadoop还不考虑,就考虑集中存储环境下的改进方案。[/size]
...全文
546 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
美到心痛 2014-10-04
  • 打赏
  • 举报
回复
引用 8 楼 ZhaoDaBing79 的回复:
另外,这种全靠关键词检索的方式还有什么改进的余地吗? 什么聚类、分类的大家觉得比关键词检索效果好吗
3楼的方法基本上包含上常归的方法。 其实如果关键字的相对稳定的,可以在文本插入的时候,就把关键字放在一个新建的字段里,这样通过时间加关键字的索引就会快一点。我指的相对稳定时,如果有变动,就全刷一次关键字字段,呵~ 如果还不行,是可以考虑考虑全文检索技术
ZhaoDaBing79 2014-10-01
  • 打赏
  • 举报
回复
难道只能结题了事了?
bw555 2014-09-23
  • 打赏
  • 举报
回复
你这个能优化的方式都已经在前面说过了 1、分区/分表 2、全文检索 3、时间索引 没啥别的可优化的了
ZhaoDaBing79 2014-09-23
  • 打赏
  • 举报
回复
怎么没有人回帖了
ZhaoDaBing79 2014-09-22
  • 打赏
  • 举报
回复
对于中文处理除了检索还有什么更好的东西 ?
hyee 2014-09-20
  • 打赏
  • 举报
回复
可以考虑使用Oracle自带的全文检索,另外Lucene也有Oracle版,功能更强些。
ZhaoDaBing79 2014-09-20
  • 打赏
  • 举报
回复
另外,这种全靠关键词检索的方式还有什么改进的余地吗? 什么聚类、分类的大家觉得比关键词检索效果好吗
ZhaoDaBing79 2014-09-20
  • 打赏
  • 举报
回复
引用 3 楼 bw555 的回复:
1、也可以考虑在时间列上增加索引提高查询速度 2、如果查询只涉及当天的数据,可以单独建一个表只存取当天的数据 (每天24点把前一天的数据存入大数据表,或是小表上增加触发器,插入小表的同时插入大数据表) 查询只从这张小表进行查询 3、如果查询为1周内数据可以建立7个表,每个表存取1天的数据,7个表按天循环使用,归档方式同2,查询时从这7个小表进行查询 2、3的方式相当于用程序实现,只对近期数据进行分区,早期数据都在这张大数据表进行存储
这几个意见非常实用,对我的启发也挺大,谢谢!
ZhaoDaBing79 2014-09-19
  • 打赏
  • 举报
回复
应该没有用like,最多就是一个时间段
小灰狼W 2014-09-18
  • 打赏
  • 举报
回复
耗时长是因为在文本中匹配关键字,而通常是使用like '%xxx%'的方式来搜索 考虑使用全文检索
bw555 2014-09-18
  • 打赏
  • 举报
回复
1、也可以考虑在时间列上增加索引提高查询速度 2、如果查询只涉及当天的数据,可以单独建一个表只存取当天的数据 (每天24点把前一天的数据存入大数据表,或是小表上增加触发器,插入小表的同时插入大数据表) 查询只从这张小表进行查询 3、如果查询为1周内数据可以建立7个表,每个表存取1天的数据,7个表按天循环使用,归档方式同2,查询时从这7个小表进行查询 2、3的方式相当于用程序实现,只对近期数据进行分区,早期数据都在这张大数据表进行存储
ZhaoDaBing79 2014-09-18
  • 打赏
  • 举报
回复
那就要改变原来的库表结构,可能不是非常合适。 最好能够什么不动,就部署几个服务器解决
bw555 2014-09-18
  • 打赏
  • 举报
回复
查询都是一段时间内的数据库,可以考虑利用分区表 分区存储,检索时只检索相关分区即可

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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