当前位置:   article > 正文

基于sphinx+mysql的千万级数据全文检索_基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计...

sphinx 千万数据占多大内存

基于Sphinx+MySQL的千万级数据全文检索

[ 文 章 作 者 : 张 宴 本 文 版 本 : v1.0 最 后 修 改 : 2008.07.27 转 载 请 注 明 原 文 链 接 : http://doc.wendoc.com/post/360/] 前言:本文阐述的是一款经过生产环境检验的千万级数据全文检索(搜索引擎)架构。 本文只列出前几章的内容节选,不提供全文内容。 在 DELL PowerEdge 6850 服务器 (四颗 64 位 Inter Xeon MP 7110N 处理器 / 8GB 内存) 、 RedHat AS4 Linux 操作系统、MySQL 5.1.26、MyISAM 存储引擎、key_buffer=1024M 环境 下实测,单表 1000 万条记录的数据量(这张 MySQL 表拥有 int、datetime、varchar、text 等 类型的 10 多个字段,只有主键,无其它索引) ,用主键(PRIMARY KEY)作为 WHERE 条 件进行 SQL 查询,速度非常之快,只耗费 0.01 秒。 出自俄罗斯的开源全文搜索引擎软件 Sphinx,单一索引最大可包含 1 亿条记录,在 1 千万条记录情况下的查询速度为 0.x 秒(毫秒级) 。Sphinx 创建索引的速度为:创建 100 万 条记录的索引只需 3~4 分钟,创建 1000 万条记录的索引可以在 50 分钟内完成,而只包含 最新 10 万条记录的增量索引,重建一次只需几十秒。 基于以上几点, 我设计出了这套搜索引擎架构。 在生产环境运行了一周, 效果非常不错。 有时间我会专为配合 Sphinx 搜索引擎,开发一个逻辑简单、速度快、占用内存低、非表锁 的 MySQL 存储引擎插件,用来代替 MyISAM 引擎,以解决 MyISAM 存储引擎在频繁更新 操作时的锁表延迟问题。另外,分布式搜索技术上已无任何问题。

一、搜索引擎架构设计: 搜索引擎架构设计: 1、搜索引擎架构图: 、搜索引擎架构图:

2、搜索引擎架构设计思路: 、搜索引擎架构设计思路: (1)、调用方式最简化: 、调用方式最简化: 尽 量 方 便 前 端 Web 工 程 师 , 只 需 要 一 条 简 单 的 SQL 语 句 “SELECT ... FROM myisam_table JOIN sphinx_table ON (sphinx_table.sphinx_id=myisam_table.id) WHERE query='...';”即可实现高效搜索。 (2)、创建索引、查询速度快: 、创建索引、查询速度快: ①、Sphinx Search 是由俄罗斯人 Andrew Aksyonoff 开发的高性能全文搜索软件包,在 GPL 与商业协议双许可协议下发行。 Sphinx 的特征: 的特征: Sphinx 支持高速建立索引(可达 10M

B/秒,而 Lucene 建立索引的速度是 1.8MB/秒) 高性能搜索(在 2-4 GB 的文本上搜索,平均 0.1 秒内获得结果) 高扩展性(实测最高可对 100GB 的文本建立索引,单一索引可包含 1 亿条记录) 支持分布式检索 支持基于短语和基于统计的复合结果排序机制

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/389252
推荐阅读
相关标签
  

闽ICP备14008679号