用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
用Python实现一个大数据搜索引擎相关推荐
- python大数据搜索_python语言-用 Python 实现一个大数据搜索引擎
搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器 ...
- 用 Python 实现一个大数据搜索引擎
搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器 ...
- 教你如何用 Python 来实现一个大数据搜索引擎
搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器 ...
- 如何构建一个大数据量的搜索引擎
构建一个大数据量的搜索引擎,数据很重要,数据来源在哪里呢?一方面可以从站内结构化数据库导入,如MySQL,Oracle等数据库,构建一个站内搜索引擎,提高查询速度.另一方面构建一个分布式爬虫,每天定时 ...
- python大数据搜索_【大数据搜索】JZSearch大数据搜索引擎
大数据的特点有四个层面:第一,数据体量巨大.从TB级别,跃升到PB级别:第二,数据类型繁多.网络日志.视频.图片.地理位置信息等等.第三,价值密度低.以视频为例,连续不间断监控过程中,可能有用的数据仅 ...
- 大数据好还是不好_学python好还是大数据好?想学IT,但有点搞不清方向的人可以看看...
这是我在某平台上看到的一个问题,学IT的话,是学python好还是学大数据好? 首先这个问题不太对,因为大数据和python,从根源上来说是两码事,就像你问我,是学做湘菜好,还是学做打铁好. 所以,学 ...
- 一个字形容大数据_嘉禾数据科学分享(八):一个大数据专业教师眼里的大数据
2020年3月12日晚19:00 ,数统协会第八期线上活动已上线,这次我们邀请来西京学院(数据科学与大数据技术教研室)的徐鲁辉老师做<一个大数据专业教师眼里的大数据>分享交流会,她以自己多 ...
- 个是云计算,一个大数据,一个人工智能,
我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据,谈人工智能的时候也会提 ...
- 成为一个大数据开发工程师的学习步骤--文字版
本博客搬运自我知乎所出视频成为一个大数据开发工程师的学习步骤? - 知乎大数据的学习是有条件限制的,首先你需要是一名普通的工程师,如果你是Java工程师的话更好,但如果你是小-https://www. ...
最新文章
- 的正确使用_弹力袜的正确使用
- MySQL数据库内连接查询inner join...on
- mongo explain分析详解
- 怎么通过python挣外快_利用Python爬虫轻松挣外快的几个方法(值得收藏)
- 数据仓库经验小结(转)
- Windows上使用SecureCRT软件连接Linux终端 — 解决问题;The remote system refused the connection
- python大一考试_python 考试补缺
- SCALA Linux安装:JAVA.LANG.NUMBERFORMATEXCEPTION: FOR INPUT FOR INPUT STRING: “0X100“
- JS之Boolean的toString方法
- Java非对称加密KeyPairGenerator类
- 关于ExtJs4的Grid带 查询 参数 分页(baseParams--extraParams)
- 王思聪怒了!大众点评紧急道歉:相关账户已冻结
- 7-4 输出三角形字符阵列 (15 分)
- 《教孩子学编程(Python语言版)》——1.3 运行Python程序
- ASP.NET Core 进程内(InProcess)托管
- 在TX2上(arm架构)安装FastDB
- 说给自己听 -- 三毛
- 什么是迁移学习?什么时候使用迁移学习?
- 加速网站访问的一些实践体会
- Linux系统重设开机秘码-------忘记linux开机密码
热门文章
- 【译】How Microsoft Lost the API War
- 用 Parity 发送 ERC20 Token
- Android JNI原理分析
- python3.7安装pyspider安装教程_Windows环境下Python3安装Pyspider
- curl get请求_Linux curl 常用示例你都 Get 了吗?| CSDN 博文精选
- java的flush方法_Java中的BufferedWriter flush()方法及示例
- mysql读写分离有用吗_MySQL的使用中实现读写分离的教程
- php session修改时间,PHP如何修改SESSION有效时间?
- python设计_设计和历史常见问题
- 2022.2.18自制玉米凉粉