`
381895649
  • 浏览: 230348 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

搜索引擎架构设计

 
阅读更多

HK 学习笔记

好久都没有写过博客了,自从换了公司后,一直在忙...时间就更少了,但是学到的东西却是非常多!今天我把学到的东西记下来,当做自己的一个笔记吧,也算是一个学习的心得

 

搜索引擎架构设计

 

介绍下我这次说的搜索引擎的主要技术

 

node.js  Sphinx  oracle  mongodb   下面简单介绍下

 

node.js   它是一个号称无阻塞的轻量级框架

主要编写语言是javascript

详细:http://nodejs.org

 

Sphinx

相信大家对它已经很熟悉了吧,是一个基于SQL的全文检索引擎 ,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索...

详细:http://sphinxsearch.com

 

oracle 数据库

mongodb

高效读写nosql,具体不多说了

详细:http://www.mongodb.org

 

好了,下面就是架构层面

先看看架构图

搜索引擎架构设计

 

 

好了,结构图有了我就开始说说整个图的各个部分吧

 

搜索引擎

 

1.数据源(oracle)

  我们提供的数据源当然就是oracle了

 

2.搜索技术(Sphinx --->>python(读写数据))

Sphinx担任建索引的框架技术

**读取数据**

图上,表明它不单止建索引,而且要从oracle读取数据,我们为什么这样做呢?由于Sphinx里包含了python,而且对oracle驱动支持也是不错的,所以我们不分专门读数据的程序了,直接调用Sphinx的python程序去读取数据,然后再到它本身的目的建立索引

**建立索引**

在建索引的过程中,我们使用了oracle的唯一标识,uuid去做索引,也是单单索引需要的数据,所以我们的索引是非常少(就是因为,以前luncene建索引的时候,把很多相关的内容都保存在索引文件中,导致索引文件过大,当用户过多的访问,就会对服务器造成负载)最后我们才选择了Sphinx

Sphinx luncene 相比,读取大索引文件的时候,Sphinx更有优势,效率更高(题处话)

**写数据**

由于我们得知mongodb的读写高效

我们下了这样的决定,Sphinx的python程序既然把数据从oracle读出来了,那么也写一份到mongodb中吧

 

3.客户端(node.js)

最后就是我们的客户端了

我们的node.js只向外提供服务,它本身就是一个服务器构架,而且号称无阻塞服务器功能的确非常强大

一个客户端搜索

通过url去访问node.js提供的服务,然后再去调用Sphinx索引文件去查找相关的内容,Sphinx返回结果集,node.js再去mongodb查询内容,最后返回给客户

这就是一个完整的过程(其中细节还有很多,很多,这里就不多说了)

 

 

最后,我们可能给搜索引擎加一些缓存技术(这些都是其次吧)...

 

 

  • 大小: 129.5 KB
分享到:
评论

相关推荐

    亿级数据的高并发通用搜索引擎架构设计[转载]

    在IT行业中,构建一个能处理亿级数据的高并发通用搜索引擎架构是一项极具挑战性的任务。这类系统需要在海量数据的基础上提供快速、准确的搜索服务,同时还需要具备良好的扩展性和稳定性,以应对高并发访问。本篇文章...

    亿级数据的高并发通用搜索引擎架构设计 国内高手设计

    前公司的分类信息搜索基于此架构,效果明显,甚至将很大一部分带Where条件的MySQL SQL查询,都改用了Sphinx+MySQL搜索。但是,这套架构仍存在局限:一是MySQL本身的并发能力有限,在200~300个并发连接下,查询和...

    亿级数据的高并发通用搜索引擎架构设计

    曾经在七月,写过一篇文章──《基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计》,前公司的分类信息搜索基于此架构,效果明显,甚至将很大一部分带Where条件的MySQL SQL查询,都改用了Sphinx+MySQL搜索...

    搜索引擎的架构设计文档

    首先,搜索引擎架构通常由五个主要部分构成:搜索器、分析器、索引器、检索器和用户接口。搜索器,也常被称为蜘蛛或爬虫,它的任务是在互联网上广泛搜集信息,包括网页、文档、多媒体文件等。它通过两种策略进行信息...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1_张宴

    ### 一、XX网搜索引擎架构设计 1. **搜索引擎架构图**:基于 PHP+MySQL+Sphinx 的架构,主要由三部分组成:前端用户界面(PHP)、后端数据库(MySQL)和搜索服务(Sphinx)。用户通过前端提交搜索请求,PHP 脚本...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1.

    一、XX网搜索引擎架构设计: 3 1、搜索引擎架构图(基于PHP+MySQL+Sphinx): 3 2、搜索引擎架构设计思路: 3 ⑴、调用方式最简化: 3 ⑵、创建索引、查询速度快: 3 ⑶、按服务类型进行分离: 4 ⑷、“主索引+...

    Sphinx搜索引擎架构与使用文档(和MySQL结合).pdf

    一、XX网搜索引擎架构设计 1. **搜索引擎架构图(基于PHP+MySQL+Sphinx)** - 这个架构图展示了一个典型的搜索引擎系统,其中包括前端的PHP应用,后端的MySQL数据库,以及作为中间层的Sphinx搜索引擎。PHP负责处理...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)[收集].pdf

    一、XX网搜索引擎架构设计 1. 搜索引擎架构图(基于PHP+MySQL+Sphinx) 在XX网的架构中,Sphinx作为核心的全文检索引擎,与PHP后端和MySQL数据库紧密协作。PHP负责处理用户请求,通过SphinxSE(Sphinx的MySQL存储...

    张宴Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1.doc

    #### 一、搜索引擎架构设计 Sphinx搜索引擎的设计与部署,结合了PHP、MySQL和Sphinx自身的优势,构建了一个高效、可扩展的搜索平台。以下是对架构设计的关键点的详细解析: 1. **架构图(基于PHP+MySQL+Sphinx)**...

    (word完整版)Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1.doc

    1. **搜索引擎架构设计**: - **基于 PHP+MySQL+Sphinx**:这个架构表明Sphinx作为搜索引擎,与PHP后端和MySQL数据库共同构成一个完整的搜索解决方案。 - **调用方式最简化**:Sphinx 提供了简单的 API 和接口,...

    简易搜索引擎架构与实现

    ### 简易搜索引擎架构与实现 #### 一、引言 本文介绍了一种简易搜索引擎的设计与实现细节,旨在提供一套基本的搜索引擎架构方案。该搜索引擎利用多种编程语言和技术栈来构建,支持跨平台的数据抓取、分析以及索引...

    基于J2EE架构的智能元搜索引擎系统设计与实现

    本文主要介绍了基于J2EE架构设计与实现的智能元搜索引擎系统。J2EE(Java 2 Platform, Enterprise Edition)是一种广泛应用于企业级应用开发的标准平台,它支持多种企业级服务,如事务管理、消息传递、安全性和集群...

    发现世界搜索引擎UTF.zip

    1. **搜索引擎架构设计**:介绍搜索引擎的基本工作原理,以及如何构建爬虫、索引和检索系统。 2. **多语言处理**:讨论在处理不同语言时,UTF-8编码的优势和使用技巧,尤其是在中文搜索中的应用。 3. **搜索引擎优化...

    搜索引擎java (zhangrunfa)

    4. **搜索引擎架构设计**:探讨搜索引擎的整体架构,如爬虫、索引、查询解析和结果排序等模块的设计和实现。 5. **性能优化**:分享提高搜索引擎性能的技巧,如内存管理、磁盘I/O优化和查询速度提升等。 6. **实战...

    搜索引擎的设计与实现的毕业论文

    《搜索引擎的设计与实现》这篇毕业论文是基于Java技术栈,结合Struts、Hibernate和Spring框架进行开发的。这个项目不仅理论研究深入,还包含了实际可运行的代码,为读者提供了全面理解搜索引擎工作原理和实现方法的...

    分类信息实时搜索引擎架构

    ### 分类信息实时搜索引擎架构详解 #### 一、概述 在当今互联网时代,搜索引擎作为连接用户与信息的重要桥梁,其重要性不言而喻。尤其是针对分类信息领域,如何构建一个高效、实时的搜索引擎,成为了业界关注的重点...

Global site tag (gtag.js) - Google Analytics