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

基于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 亿条记录) 支持分布式检索 支持基于短语和基于统计的复合结果排序机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值