大型网站系统架构演化实例_7.使用NoSQL和搜索引擎

1.使用NoSQL和搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

此时,网站系统架构如图1。

图1 第八阶段网站架构

2.NoSQL服务器

2.1NoSQL 的定义

"NoSQL"表示非关系类型数据库,这些数据库采用不同于关系表的格式存储数据。但是,NoSQL 数据库可以使用惯用语言 API、声明性结构化查询语言以及按示例查询语言进行查询,这也正是它们被称为"不仅仅是 SQL"数据库的原因所在。

2.2关系数据库与 NoSQL 数据库对比

RDBMS 中的数据存储在称为表的数据库对象中。表是相关数据条目的集合,由列和行组成。这些数据库需要预先定义架构,即需要提前知道所有列及其相关联的数据类型,以便于应用将数据写入数据库。它们还存储通过键链接多个表的信息,从而创建跨多个表的关系。在简单的用例中,键用于检索特定行以便于进行检查或修改。

相反,在 NoSQL 数据库中,无需预先定义架构即可存储数据 --- 这意味着您可以快速移动和迭代,从而动态定义数据模型。这适用于特定的业务需求,包括基于图形、面向列、面向文档以及作为键值存储。

关系数据库近期还是非常广泛使用的模型,它们仍然在许多企业得到了广泛采用。然而,面对当今多样化、高速和海量的数据,有时需要用一个高度不同的数据库来补充关系数据库。这促进了 NoSQL 数据库在某些领域的采用,该数据库也称为"非关系数据库"。由于支持快速横向扩展,因此非关系数据库可以处理高流量,这也使其具有很强的适应性。

3.搜索引擎服务器

广义的搜索引擎泛指网络(尤其是万维网)上提供信息检索服务的工具或系统,即在因特网上或通过因特网响应用户的搜索请求,返回相应查询结果的信息技术和系统.

概括的说:搜索引擎就是WWW网络环境中的一套信息检索系统。搜索引擎一词在国内外因特网领域被广泛使用,然而他的含义却不尽相同。在中国,搜索引擎通常指基于网站目录的搜索服务或是特定网站的搜索服务.

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

相关推荐
SelectDB技术团队24 分钟前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
爱学习的程序媛2 小时前
2. 智能应用开发技术栈清单
ai·架构·系统架构·ai应用·智能体开发·智能应用开发
Shulex3 小时前
面向转化率优化的独立站实时客服系统架构与数据流实现
系统架构
码流子4 小时前
AI稽核精灵-Agent落地
大数据·人工智能·物联网·算法·系统架构
AFinalStone6 小时前
Android7 多用户源码解析(五)应用安装与管理隔离机制
系统架构·aosp·多用户
Elastic 中国社区官方博客8 小时前
使用 Lucene 搜索你的 Bean —— Elasticsearch
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·lucene
闲蛋小超人笑嘻嘻8 小时前
Git Worktree 详解
大数据·elasticsearch·搜索引擎
Y3815326628 小时前
行业动态周报:用新闻 API 追踪一个赛道的声音变化
python·搜索引擎
AFinalStone9 小时前
Android7 多用户源码解析(二)核心数据结构深度剖析
系统架构·aosp·多用户
沫璃染墨9 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程