Sphinx中文分词应用

Sphinx中文指南(二)——Sphinx中文分词coreseek篇     阅读本文前,请先查看前篇——Sphinx中文入门指南 目前,实现Sphinx中文的分词的方法据我所知有3种: 1、Coreseek 2、Sphinx-for-chinese 3、在客户端先分词,然后使用Sphinx字索引(查看安装原文)直接对输入词进行检索 Coreseek安装 在上篇中我们介绍了安装Sphinx的一些必要条件,在此不一一而论。本文基础基于上篇! 下载Coreseek: [root@localhost ~]#cd /usr/local/src [root@localhost src]# wget http://www.coreseek.cn/uploads/csft/3.1/Source/csft-3.1.tar.gz  ####coreseek源文件 [root@localhost src]# wget http://www.coreseek.cn/uploads/csft/3.1/Source/mmseg-3.1.tar.gz  #####coreseek所使用的词典 [root@localhost src]#tar zxvf csft-3.1.tar.gz [root@localhost src]#tar zxvf mmseg-3.1.tar.gz #####在安装coreseek前必须先安装mmseg [root@localhost src]# cd mmseg-3.1 [root@localhost mmseg-3.1]# ./configure –prefix=/usr/local/mmseg [root@localhost mmseg-3.1]# make && make install ######## 安装coreseek ######## ##这里不使用python数据源,若需要,请加上 –with-python,在mmseg上一定要对应路径 [root@localhost csft-3.1]# ./configure [Read More →]

sphinx bug segmentation fault(core dumped)搜索出错。

在查询’测试’的时候.segmentation fault(core dumped) 出错了。该怎么办。 数据量100W。生成的.spi文件4.9G。建立索引已经完成。搜索就是segmentation fault(core dumped)。 怎么解决???  

Posted in sphinx. 评论暂缺 »

btree索引和hash索引的区别

昨晚重翻了 《深入浅出mysql》再次查看了一下印象模糊的btree索引和hash索引的区别。故此做一下笔记。 在mysql中,大多数索引(如 PRIMARY KEY,UNIQUE,INDEX和FULLTEXT)都是在BTREE中存储,但使用memory引擎可以选择BTREE索引或者HASH索引,两种不同类型的索引各自有其不同的使用范围。 =========以下节选网摘========== Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。   可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。 (1)Hash 索引仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询。 由于 Hash 索引比较的是进行 Hash 运算之后的 Hash 值,所以它只能用于等值的过滤,不能用于基于范围的过滤,因为经过相应的 Hash 算法处理之后的 Hash 值的大小关系,并不能保证和Hash运算前完全一样。 (2)Hash 索引无法被用来避免数据的排序操作。 由于 Hash 索引中存放的是经过 Hash 计算之后的 Hash 值,而且Hash值的大小关系并不一定和 Hash 运算前的键值完全一样,所以数据库无法利用索引的数据来避免任何排序运算; (3)Hash 索引不能利用部分索引键查询。 对于组合索引,Hash [Read More →]