python无脑搜索引擎实现<一>

python自制搜索引擎_python无脑搜索引擎实现<一> 越来越多没填的坑。而我还在开新的坑。。。。。。这次实现了一个搜索引擎,语言为python,搜索内容为自己从知乎上面抓下来的10万个问题。仅搜索问题题目。以下大概是搜索效果: 其实搜索引擎的建立基础流程也就那样,最主要的是大量,不不不,巨量的数据处理,巨量的算法,巨量的排序。下面是流程分析:一 爬取网页这一块感觉没啥好说的, 就是学了两三天scrapy,当然其中很多的弯弯绕绕我也没搞懂,但是基本的使... 阅读详情

越来越多没填的坑。而我还在开新的坑。。。。。。
这次实现了一个搜索引擎,语言为python,搜索内容为自己从知乎上面抓下来的10万个问题。仅搜索问题题目。

以下大概是搜索效果:

这里写图片描述

其实搜索引擎的建立基础流程也就那样,最主要的是大量,不不不,巨量的数据处理,巨量的算法,巨量的排序。

下面是流程分析:

一 爬取网页

这一块感觉没啥好说的, 就是学了两三天scrapy,当然其中很多的弯弯绕绕我也没搞懂,但是基本的使用确实能满足要求了。爬取使用了深度优先爬,本程序中,使用的方式是从五个种子问题开始,爬标题,url,html文档,获取当前页面中http://www.zhihu.com/question开头的网址。然后从获取的新的网址中进行新一轮的递归,从而完成深度优先的爬取。不过书上说广度优先爬取比较好,因为如果从首页开始爬,深度越浅,说明该页面越重要(有道理)。但是我们爬知乎的问题之间的关系都是平行的,所以不存在这个问题。

爬到的数据库用sqlite3存起来,不得不敬服一下女朋友在数据库上深厚的造诣,我是搞不定数据库的语法了T T。

保存结果用SQLiteSpy打开大概这样:

这里写图片描述

id就是自动增长的主键,也就是后面会说的docID,url是url,title是title(。。。),然后code是html代码,太长了后面自动没显示。之所以存html是因为。。反正都要把html爬下来,学校的校园网要钱,不存下来太浪费了,万一想做全文索引呢?

10w条数据,占了6G,女朋友爬的百度知道,也是10W,竟然爬了16G= =,流量在燃烧。

利用elasticsearch实现搜索引擎   ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二最流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 起步 1. 安装jdk   由于elasticsearc... 阅读详情

相关推荐

Elasticsearch:ES QL 入门 - Python Notebook

⚠️ 不要在生产环境中使用 ES|QL。此功能处于技术预览阶段,可能会在未来版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。ES|QL 将在 8.13 正式发布(以官方发布为准)。在一下的展示中,我将使用 Elastic Stack 8.12 来进行展示。

2401_89693671的博客 1048

【ElasticSearch笔记】使用Python生成ES DSL语句

将传统的JSON DSL语句,映射为Python类、对象操作,使其两者相互转换互通,减少手动编写JSON DSL语句的繁琐,提高可维护性。

木子家有小可爱的博客 1586

ES索引重建--使用python elasticsearch

ES索引重建–使用python elasticsearch在ES集群的使用过程中,有时会遇到需要重新建立mapping的情况,通常,我们会选择建立一个新的索引,然后将数据从原索引迁移到新索引的方式来重建需要的mapping。之前也有看到过通过Elasticsearch 的Java API 调用scan&scroll 和bulk 的方法,无奈Java 太久没有上手了~~ 所以,找了一下,发现有Pyt

sunrise_zhou的博客 6553

Elasticsearch的介绍 以及使用python操作es详细步骤

一. 什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据来说,肯定就没必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便存储和检索,Elasticsearch 就是不二选择,它是一个全文搜索引擎,可以快速地储存、搜索和分析海量数据。 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful w

数据知道的博客 4万+

【Python操作ElasticSearch】——实现全文搜索引擎的秘密武器

ElasticSearch是一款开源的全文搜索引擎,它提供了高效、可扩展的数据存储和检索功能。通过利用Python Elasticsearch API,我们可以快速、轻松地搭建自己的搜索引擎。开始使用ES之前,首先需要创建一个索引并定义文档的结构。在这里,我们以Twitter的数据为例,创建一个名为“twitter”的索引。接下来,需要在Python中安装elasticsearch模块,以便能够与Elasticsearch交互。使用ES进行搜索,是其最核心的功能。使用ES存储数据的核心就是文档。

. 940

search-engine:一个简单的搜索引擎,内容取自文件并进行基本的索引和查询

介绍 搜索引擎包含两个模块。 indexer - 用于创建索引。 s-engine - 执行提交的查询并输出结果及其优先级值。 依赖关系 Java1.7 阿帕奇Maven 3 如何建造 选项1 对于这两个模块,发行版都提供了 jar 文件,运行它们一次并获得正确的命令格式。 选项 -2(需要 Apache Maven 3) 问题 $> mvn 全新安装 这将创建所需的 jar 文件。 如何跑步 索引器 - java -jar <jar> <base_folder_path> <index> s-engine - java -jar <jar> <query> <index> <answer>

search-engine-parser:轻巧的软件包,用于查询流行的搜索引擎并抓取结果标题,链接和描述

搜索引擎解析器 “如果它是一个搜索引擎,那么它就可以被解析” -一个随机的家伙 search-engine-parser是一个软件包,可让您查询流行的搜索引擎并抓取结果标题,链接,说明等。 它旨在抓取最广泛的搜索引擎。 查看所有受支持的引擎 受欢迎的受支持引擎 支持的流行搜索引擎包括: 谷歌 鸭鸭去 的GitHub 堆栈溢出 百度 YouTube 查看所有受支持的引擎 安装 从PyPi安装: # install only package dependencies pip install search-engine-parser # Installs `pysearch` cli tool pip install " search-engine-parser[cli] " 或来自大师: pip install git+https://githu

python-searchengine

python-搜索引擎 出于说明目的,在Python中使用了简单的搜索引擎实现,以配合。 要求 Python 3.7或更高版本。 用法 从命令行运行(此程序将随后退出): $ pip install -r requirements.txt $ python run.py Parsing XML took 701.6900851726532 seconds index_documents took 701.6901140213013 seconds Index contains 6274026 documents search took 0.2980232238769531 milliseconds search took 0.07561087608337402 seconds search took 0.1850128173828125 milliseconds search took

OpenCompass实战:从零部署大模型评测平台,量化模型能力选型

在大模型技术选型与评估中,客观、可量化的评测体系是工程实践的关键。其核心原理在于通过标准化的数据集、统一的评测方法与自动化流程,将主观的模型体验转化为可比较的指标数据。这种评测框架的技术价值在于解决了模型能力评估的模糊性问题,为开发者提供了模型选型、效果对比与迭代优化的科学依据。典型的应用场景包括对比不同开源模型在代码生成、逻辑推理等特定任务上的性能,或是评估微调后模型在业务数据集上的提升效果。OpenCompass作为开源的大模型全能力评测平台,正是这一理念的工程化实现。它通过模块化的四层流水线架构和配置

weixin_28725037的博客 626

银河麒麟鲲鹏aarch64架构安装docker和K8s

鲲鹏云服务器上安装docker-云社区-华为云 (huaweicloud.com) 这里我下载的版本是docker-18.09.3.tag docker 安装包地址:https://download.docker.com/linux/static/stable 配置system服务 在github对应分支的contrib/init/systemd/ 下面,提供了对应的docker.service以及docker.socket文件,可以直接拷贝到本地文件使用: 对应链接:https://github.c

qq_50007696的博客 9056

手把手教你逆向分析某里系bx-ua参数(以225版本为例)

本文详细解析了某里系应用bx-ua参数的逆向工程实战方法,重点拆解其三层加密体系(二进制加密、字符替换和Base64编码)。通过工具链配置和实战案例,帮助开发者掌握逆向分析技巧,适用于合法合规的安全研究和加密技术评估场景。

weixin_33220360的博客 412

点云图的学习

一。点云地图拼接 1.1 配置运行环境 首先配置安装opencv3,安装完成后如下图: 然后配置点云图工具pcl,直接使用apt即可安装,安装后如下图: 最后使用点云工具观察点云图: 1.2 原理解析 总的来说由多角度拍摄图片拼接为点云3D图,是通过相机的内参,将像素坐标转化为相机坐标,再通过外参将相机坐标转化为世界坐标系,然后将每张图片的像素绘制填充于同一个世界坐标系下面,形成点云3D图。...

ff_xun的博客 1万+

贝加莱Automation Studio 4.10安装保姆级教程:从官网下载到解决.Net 3.5报错

本文提供贝加莱Automation Studio 4.10的详细安装教程,涵盖从官网下载到解决.Net 3.5报错的全过程。特别针对工业自动化开发环境中常见的.Net Framework 3.5安装问题,提供多种经过验证的解决方案,包括控制面板安装、DISM命令离线安装和手动下载安装包等方法,帮助工程师顺利完成PLC开发环境的搭建。

weixin_30955617的博客 712

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3480

4D毫米波雷达:高度信息与微多普勒效应

4D毫米波雷达:高度信息与微多普勒效应​ ,人工智能,计算机视觉,大模型,AI,本文深入解析4D毫米波雷达的高度信息获取与微多普勒效应。4D毫米波雷达通过MIMO技术、垂直天线布局及相位差计算等获取高度信息,相较传统雷达更精准。微多普勒效应由目标微运动引发,可用于目标识别、分类和运动监测。文中结合自动驾驶、安防监控案例,分析技术挑战与未来趋势,如信号干扰、数据处理复杂,未来将向高精度、与其他传感器融合发展,展现出在多领域的巨大应用潜力。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 9万+

5G无人机安全研究综述

国内多所高校提出混合信任模型,南京航空航天大学于2020年提出了起源信息感知的无人机网络信任模型[26],模型基于报文的完整性对报文创建和操作节点的行为评判并生成观测证据,收集证据进行信任评估,识别网络中的恶意节点并进行路由隔离,实现准确的对等信任评估。同时,5G技术的高速率、高可靠性、低时延等特点,能够为无人机提供实时高清图像回传,保证通信网络的稳定,拓展无人机飞控距离限制,丰富了5G无人机的应用场景。5G和无人机技术的融合,丰富了传统无人机的应用服务场景,然而5G无人机仍存在安全隐患。

weixin_70923796的博客 765

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: C++(也许算是吧)+Linux 简易web服务器实现(with EPOLL&THREAD POLL)(1)
下一篇: 欢迎使用优快云-markdown编辑器
skillness2
博客等级 码龄16年 1粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值