sphinx索引分析续

4.10 同义词文件/Synonym

同义词文件格式
from => to
AT &T => AT&T
AT & T => AT & T
standarten fuehrer => Standartenfuehrer
standarten fuhrer => Standartenfuehrer
Ms-Dos => MS-DOS
MS DOS => MS-DOS

5 算法

5.1 字典

double array trie 检索树

5.2 分词算法

5.3 文档id压缩 – Variable Byte Coding

5.4 索引存储 – 多路归并排序

7 创建索引过程

  • 扫描配置文件。
  • 创建程序内部数据结构,schema, mva attr等。
  • 第一次遍历文档记录,连接数据库读取创建索引的记录。
  • 循环分词创建spa, spp文件(临时格式)(如果inline模式只创建spp文件), 如果非inplace模式,那么创建对应 tmp->spa, tmp->spp对应文件。
  • 第二次遍历文档记录,创建mva属性(非field mva attributes)。
  • 多路归并创建spm文件。
  • 更新并创建最终的spa文件,更新mva的位置信息到spa文件。
  • 读取临时格式的spp文件,多路归并创建spi,spd,spp文件。
  • 创建索引头文件sph。
  • 更新索引创建后的信息(例如存储当前已经简历索引的)释放资源
时间: 2024-10-12 22:38:41

sphinx索引分析续的相关文章

B+/-Tree原理及mysql的索引分析

B+/-Tree原理及mysql的索引分析 标签: mysqlMySQLMysqlMYSQL 2012-12-23 17:09 20172人阅读 评论(2) 收藏 举报 本文章已收录于:  MySQL知识库  分类: mysql(18)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] B+/-Tree原理 B-Tree介绍 B-Tree是一种多路搜索树(并不是二叉的):       1.定义任意非叶子结点最多只有M个儿子:且M>2:       2.根结点的儿子数为[2

MySQL索引分析与优化

索引分析 - 准备 先创建三张表:tb_emp(员工表)tb_dept(部门表)tb_desc(描述表) 1. tb_emp(员工表) DROP TABLE IF EXISTS `tb_emp`; CREATE TABLE `tb_emp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `deptid` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=I

Sphinx配置文件分析

#在Sphinx配置文件中,主要包括五个部分:source部分.index部分.searchd部分.indexer部分和common部分(前四部分比较重要): #source是数据源,index负责定义索引,searchd负责定义searchd守护进程的相关选项,indexer负责定义生成索引的过程中索引的功能性限制: #在数据源source中,type指定数据库的类型,目前Sphinx只支持两种类型的数据库,一种是MySQL: #sql_host指定主机,sql_user和sql_pass对应

使用sphinx索引mysql数据

数据库表如下 mysql> select * from tb_account; +----+-------+------+ | id | name | age | +----+-------+------+ | 1 | ciaos | 3 | | 2 | stone | 6 | +----+-------+------+ 安装sphinx yum install sphinx libsphinxclient-devel 配置sphinx代替mysql全文索引(/etc/sphinx/sphinx

PLSQL_性能优化系列14_Oracle Index Anaylsis索引分析

2014-10-04 BaoXinjian 一.摘要 1. 索引质量 索引质量的高低对数据库整体性能有着直接的影响. 良好高质量的索引使得数据库性能得以数量级别的提升,而低效冗余的索引则使得数据库性能缓慢如牛,即便是使用高档的硬件配置. 因此对于索引在设计之初需要经过反复的测试与考量. 那对于已经置于生产环境中的数据库,我们也可以通过查询相关数据字典得到索引的质量的高低,通过这个分析来指导如何改善索引的性能. 2. 索引创建的基本指导原则 索引的创建应遵循精而少的原则 收集表上所有查询的各种不同

GreenPlum简单性能测试与分析--续

版权声明:本文由黄辉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/259 来源:腾云阁 https://www.qcloud.com/community 之前对GreenPlum与Mysql进行了TPC-H类的对比测试,发现同等资源配比条件下,GreenPlum的性能远好于Mysql,有部分原因是得益于GreenPlum本身采用了更高效的算法,比如说做多表join时,采用的是hash join方式.如果采用同样高效的算

MYSQL索引分析和优化设计方案

一.什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时 MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已 经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为people的表: CREATE TABLE people (

Mysql索引分析:适合建索引?不适合建索引?【转】

数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: 5.索引应该建在选择性高的字段上: 6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引: 7.复合索引的建立需要进行仔细分析:尽量考虑用单字段索引代替: A.正确选择复合索引中的主列字段,一般是选择性较好的字段: B.复合索引的几个字段是否经常同时以A

大数据量索引分析

2014-10-04 BaoXinjian 一.摘要 PLSQL_性能优化系列14_Oracle Index Anaylsis 1. 索引质量 索引质量的高低对数据库整体性能有着直接的影响. 良好高质量的索引使得数据库性能得以数量级别的提升,而低效冗余的索引则使得数据库性能缓慢如牛,即便是使用高档的硬件配置. 因此对于索引在设计之初需要经过反复的测试与考量. 那对于已经置于生产环境中的数据库,我们也可以通过查询相关数据字典得到索引的质量的高低,通过这个分析来指导如何改善索引的性能. 2. 索引创