相关文章
Elasticsearch:如何创建搜索引擎
2024-11-10 17:01

作者:Jessica Taylor

Elasticsearch:如何创建搜索引擎

是生活中我们认为理所当然的事情之一。 每当我们寻找某些东西时,我们都会将一个单词或短语放入搜索引擎,就像魔术一样,它会为我们提供一个匹配结果列表。 现在可能感觉不那么神奇了,因为这是我们每天都在做的事情。 但任何记得 Alta Vista 时代的人都应该明白我们现在的情况有多好。

当我说 “搜索引擎” 时,很容易想到流行的网络搜索引擎,例如 Google 以及在较小程度上上的 Bing。 但搜索引擎的应用远远超出了搜索网络的范围。 Uber 和 Tinder 等热门应用程序包含强大的搜索引擎,可利用其平台独有的地理位置和其他特征将用户与司机和日期进行匹配。 这对于流媒体应用程序、学术网站甚至来说都是一样的。 事实上,如果你查看任何主要网站的导航栏,你很可能会看到一个搜索栏,可以帮助你从该特定网站找到你需要的内容。

搜索引擎的潜在用例数量巨大,这可能就是你阅读本文的原因。 也许你是一名开发人员,希望构建你的第一个搜索引擎。 或者你可能意识到搜索通过检索增强生成来增强生成式 AI 体验,并且想了解更多信息。 为了使这尽可能简单,我们将本指南分为三个部分

  • 搜索引擎的定义和概念
  • 创建你自己的搜索引擎
  • 使用 Elastic® 轻松构建搜索引擎

读完本文后,你将掌握使用 Web 服务器、数据摄取和索引构建第一个搜索引擎所需的所有知识,并由 提供支持。

将搜索引擎视为图书管理员,帮助你找到所需的信息。 你告诉他们你要解决的问题或你要回答的问题,图书管理员可以向你推荐最有可能对你有帮助的书籍和资源。 他们可能并不总是能做对,但这比盲目地翻阅书籍以期获得幸运要有效得多。

搜索引擎由四个主要组件组成网络服务器数据摄取索引结果页面。 在构建搜索引擎之前,了解它们各自的作用非常重要。

如果搜索引擎是图书馆员,那么网络服务器就是图书馆本身。 你可以在此处存储向用户返回有意义的结果所需的所有数据。 这些 Web 服务器通常基于云,因为它们为你提供了可扩展性、可访问性、安全性和性能。 对于网络搜索引擎来说,这将是跨不同网站的 HTML 页面、图像、视频和其他资产的位置。 对于社交媒体网站,这将是该平台上内容所需的标题、描述、元数据和其他信息。

就像图书馆需要整理和收集不同的书籍一样,搜索引擎需要从某个地方收集数据。 这就是为什么是构建搜索引擎如此重要的一部分。 对于网络搜索引擎,此数据摄取是使用网络爬虫完成的。 爬虫使用复杂的来扫描网站并识别内容是什么以及在哪里可以找到内容。

通过 API 与其他服务集成是另一种类型的数据摄取。 这些集成使你可以选择数据的来源,从而使你的搜索引擎能够更好地查找特定数据。 例如,如果你正在构建视频搜索引擎,你可能希望显示来自多个提供商(例如 YouTube、Netflix 和 Disney+)的结果。

同样,你可以使用连接器从一个或多个数据源引入信息。 这些通常是预构建的模块或代码片段,可用于连接到特定的数据库、应用程序或 API。 它们为你提供了足够的灵活性,而无需将你的范围扩大得太远。

就像在图书馆一样,你需要有一个内容索引,否则将不可能知道所有内容在哪里。 索引通过组织和存储数据源中的信息来实现此目的,以确保可以有效地检索这些信息。 为了让你的搜索引擎正常工作,它需要能够快速识别、排名和提供内容。

因为你可能尝试对大量数据建立索引,所以不能简单地从源逐字复制该索引。 相反,索引需要处理这些内容,将其分解为关键元素,例如

  • 关键词:页面上找到的单词和短语
  • :表示文本数据的多维向量
  • 元数据:标题、描述和页面中嵌入的其他结构化数据
  • 内容分析:了解页面的主题、实体和整体含义
  • 反向链接:来自其他网站的指向内容的链接

这个难题的最后一部分实际上是向用户显示搜索结果。 搜索引擎结果页面承担了你在服务器、数据摄取和索引方面所做的所有艰苦工作,最终形成一个有用结果列表供用户选择。

其外观因搜索引擎而异,但你可能会在 SERP 上有标题、链接、描述和某种分页。 你可能还拥有更高级的过滤和分面,因此用户可以根据常用参数轻松优化结果。 但重要的是结果会清晰显示,因此很容易找到最佳、最相关的选择。

你的很重要,因为它可以通过向用户展示你了解他们的意图来培养信任,并确保他们走在正确的道路上。 这最终引导他们无缝地获取他们想要的信息 —— 这种结合可以建立忠诚度并促进持久的参与。

现在你已经更好地了解了搜索引擎的关键组件,让我们深入了解构建你自己的搜索引擎的过程以及你可能面临的挑战。

首先,你需要考虑搜索引擎的规模。 瞄准明星并尝试建立新的谷歌可能很诱人。 但抓取数十亿个网页需要大量的基础设施和计算能力,更不用说存储所有数据的能力了。

在开始构建之前,你还应该牢记你现有的知识和技能。 你对数据源了解得越多,就越容易将其用于搜索引擎。 同样,尝试坚持使用你已经有经验的技术堆栈。 如果你精通 Python,请考虑使用它来构建你的搜索引擎。

构建搜索引擎的第一步是确定搜索引擎要解决的问题。 这个决定将影响你要构建的所有其他内容,从数据源到索引,再到显示结果的方式。 因此,请考虑一下你正在为谁构建搜索引擎,并问自己以下问题

  • 他们为什么要寻找这些信息/内容
  • 你需要了解哪些信息才能确定某件事是否相关
  • 你将如何决定哪些结果比其他结果更好
  • 你将如何呈现结果以使其尽可能有用

一旦回答了这些问题,你将能够更好地在整个构建过程中做出关键决策 - 从使用哪些数据源到是否应该在搜索引擎结果页面上显示图像。 你心中的这些答案越清晰,你就越能满足用户的需求和期望。

一旦你知道搜索引擎的要求是什么,下一步就是获取你需要的数据。 如果你计划使用集成或连接器,则需要访问这些源并确保你可以在需要索引时访问数据。 如果数据源属于你,那么这应该不成问题。 但请记住,任何外部数据源都会带来一些风险。 数据源的所有者可以随时撤销访问权限或对数据进行更改,这可能会导致出现一些问题。 你可以安排数据刷新来解决此问题,但如果数据的结构或体系结构发生更改,仍然可能会导致问题。

如果你要创建网络搜索引擎,则需要使用网络爬虫来获取要索引的数据。 这所需的时间完全取决于你的搜索引擎的范围。 理论上,你可以构建自己的爬虫,但这需要大量工作。 相反,使用现有工具(例如 )会更快、更容易。 这将扫描你喜欢的任何网站,并且你可以安排自动重新爬网,以便你的搜索引擎始终保持最新。

无论你使用爬虫程序、API 还是连接器,都没有关系 — 你仍然需要某个地方来存储收集到的信息。 但你不应该急于选择任何旧数据库。 你需要考虑数据量和增长、性能要求、数据结构、可扩展性、可靠性、安全性和分析等因素。 你还需要考虑短期和长期存储这些数据的成本。

正如我们之前提到的,考虑你自己的技能也很有用。 例如,如果你之前在开发中主要使用 Elasticsearch®,那么这可能是你现在的最佳选择。 但是,如果你对几种不同类型的数据库感到满意,则应该根据上面列出的因素做出决定。

你需要做的下一件事是对你收集和存储的数据建立索引。 这将让你为用户提供与其查询最相关的结果。 幸运的是,索引是 Elastic 网络爬虫的一部分,这将使你的生活更轻松。 但在配置索引结构时,你仍然需要考虑数据粒度、属性索引和数据压缩等问题。

过程中可能会出现一些尝试和错误,但目标应该是帮助用户

  • 快速查找相关信息
  • 优化搜索和过滤结果
  • 发现相关内容

使用 将使这一切变得更加容易,因为你可以快速启动并运行搜索引擎 UI。 这使你能够测试你的搜索引擎、检查索引并进行调整和更改以改进你的搜索引擎。 这包括过滤和排序、分页和键入时搜索等功能。

构建任何搜索引擎的最终目标是提供最有用和最相关的结果。 但你不太可能一开始就能做到这一点。 相反,你需要不断努力完善你的搜索引擎,以更接近实现该目标。 关键词匹配、、混合搜索技术、相关性评分、链接分析和同义词等都可以带来很大的改进。

你还可以利用机器学习和人工智能来增强你的搜索能力。 这可以使你的搜索引擎更加强大,因为它可以从用户行为中学习,包括更高级的个性化,甚至可以更好地理解用户的意图和语气。 不过,这确实也带来了挑战。 你需要确保偏见不会渗透到你的搜索引擎中,并且你需要非常重视隐私和安全。

构建你的第一个搜索引擎可能感觉像是一项艰巨的任务,但希望这些步骤已经向你表明它实际上是可以实现的。 Elastic 可以帮助完成该过程的每一步。 它通过等工具简化了,通过其增强了索引功能,并通过功能增强了相关性。

无论你是构建网站搜索还是专门的搜索引擎,Elasticsearch 都会为你提供一套全面的工具,帮助你从头开始创建高效且用户友好的搜索体验。

只要你准备好,我们可以通过以下四种方式帮助你为你的企业带来更好的搜索体验

  • ,看看 Elastic 如何帮助你的业务。
  • ,了解 Elasticsearch 平台的工作原理以及我们的解决方案如何满足你的需求。
  • ,了解如何设置 Elasticsearch 集群并开始数据收集和摄取。
  • 通过电子邮件、linkedIn、Twitter 或 Facebook 与你认识的愿意阅读本文的人分享本文。

    以上就是本篇文章【Elasticsearch:如何创建搜索引擎】的全部内容了,欢迎阅览 ! 文章地址:http://mip.xhstdz.com/news/1281.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://mip.xhstdz.com/mobile/ , 查看更多   
最新文章
chatai对于某些问题的理解
当政府在处理问题的方法上排斥问题提出者,倾向于掩盖问题时,政府的外观可能会发生以下变化:缺乏民主与开放:政府与民众之间的
2024工博会首日,汇川数自融合新质动力革新
数自融合的新质动力2024年工博会首日,汇川展台盛况依旧。数自融合,深度尽显。开启了一场工业变革的非凡盛宴——■ 数字工厂软
AI绘画如何从入门到精通?保姆级教程来啦
在数字化飞速发展的今天,AI绘画已经成为一种新颖且富有创造力的艺术形式。对于初学者来说,想要掌握AI绘画可能会觉
GEM5 Garnet Standalone packet injection pattern garnet包的生成路径:packet message flit
/ 在不同的消息类别上对不同的一致性消息类型进行建模。 // // GarnetSyntheticTraffic 采用 Garnet_standalone 一致性协议 //
AI心理服务机器人:帮人们自助解决心理问题
  北京大学第六医院临床心理中心研发的AI心理服务机器人“北小六”。实习生 王婧/摄   最近半年,00后女孩周美宜逐渐感觉身
CopyCopter
CopyCopter AI是一款由 Eleven Labs 开发的AI-powered Text-to-Video Generation Tool。这款工具的核心功能是将长篇的书面内容转
AI人工智能原理与Python实战:Python数据可视化
人工智能(Artificial Intelligence, AI)和数据可视化(Data Visualization)都是当今最热门的技术领域之一。人工智能是一种使计算
AI对创作者的威胁,以另一种方式实现
本文来自微信公众号:虹线(ID:gh_900eeca5a2fc),作者:评论尸,原文标题:《鼠巢,AIGC,可颂猫,短视频》,题图来自:视觉
AI智能领域哪家强?揭秘最佳品牌排行榜!
AI智能领域哪家强?揭秘最佳品牌排行榜!在当今科技飞速发展的时代,人工智能(AI)已经成为了一个备受关注的热点领域。随着AI技
ai写作神器有哪些?ai人工智能对话软件有哪些?
AI写作神器有哪些?ai人工智能对话软件有哪些?随着人工智能技术的不断发展,越来越多的工具开始利用AI技术来辅助人类完成各种任
相关文章