如何写一个简单的搜索引擎

如何写一个简单的搜索引擎

一直在用sphinx,只是在用的程度而已,不是太明白它的具体原理,最近想花一段时间(我也不知道多久,一直使用php,最近得改用java写些代码了)慢慢的把搜索引擎迁移到Elasticsearch,同时订制一些服务和功能。

所以还是想明白下它的原理啦,明白原理后写个简单的搜索引擎还是不太难的。

搜索引擎大致分为三部分

1 爬虫-数据准备,我们这种垂直搜索都是自己的源了。
2 建立索引
3 搜索

爬虫

不谈。我们的数据来源是我们的几百万条记录
你可以写个爬虫去网上抓取你想要的任意数据。
爬虫注意
    1 标识已经抓取的记录
    2 死循环

建立索引

通过词库,把文档建立成拆分成一个个词汇和文档id对应的列表,当然还记录了其他信息,比如分词在文档中出现的文字,次数,等等,建立一棵树

搜索

对搜索词进行分词,找到词库里面的词,对词库的文档id进行打分,根据打分进行排序

参考上面的原理,再到网上找一些算法一一实现,咱们就可以写一个简单的搜索引擎了。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值