已知关键词的快速索引

关键词已知的情况下,快速索引。

给定:1300个关键词,在1000条信息中比较,将对应的关键词和记录id记录下来。

分析:简单测试,将1300个关键词放入hashtable,循环1000次,一条条记录做IndexOf(c# 中判断字符串是否存在的方法),花费时间很长。

解决:重复太多,改进方法就是减小重复,将1300个关键词取第一,第二个char作为下标各自放入bit数组,建立第一个char对应的struct,包含该字符起头的最长关键词长度和最短关键词长度以及相应的关键词hash表。反向以最后和最后第二个char为下标放入另一bit数组。
从0开始到字符串长度的循环,一个个char判断,一旦遇到同时符合第一,第二个char都是的情况下进入关键词检查。当拿到关键词,就偏移关键词的长度。

效率在100多ms。

这不是最快的,而且内存使用不是最好。

如果你有不错的想法,可以交流。


这适合一些搜索关键词已知的情况,索引很小,速度也快。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值