用Python实现一个大数据搜索引擎

用Python实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。
布隆过滤器 (Bloom Filter)
第一步我们先要实现一个布隆过滤器。
布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。
让我们看看以下布隆过滤器的代码:
    class Bloomfilter(object): 
        """ 
        A Bloom filter is a probabilistic data-structure that trades space for accuracy 
        when determining if a value is in a set.  It can tell you if a value was possibly 
        added, or if it was definitely not added, but it can't tell you for certain that 
        it was added. 
        """ 
        def __init__(self, size): 
            """Setup the BF with the appropriate size""" 
            self.values = [False] * size 
            self.size = size 
      
        def hash_value(self, value): 
            """Hash the value provided and scale it to fit the BF size""" 
            return hash(value) % self.size 
      
        def add_value(self, value): 
            """Add a value to the BF""" 
            h = self.hash_value(value) 
            self.values[h] = True 
      
        def might_contain(self, value): 
            """Check if the value might be in the BF""" 
            h = self.hash_value(value) 
            return self.values[h] 
      
        def print_contents(self): 

转载于:https://www.cnblogs.com/amengduo/p/9586634.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值