Sphinx/SQL 数据源

来自站长百科
跳转至: 导航、​ 搜索

Sphinx | 安装 | 建立索引|搜索|命令行工具参考|MySQL存储引擎

对于所有的基于SQL驱动,建立索引的过程如下:

  1. 连接到数据库
  2. 执行预查询,以便完成所有必须的初始设置,比如为MySQL连接设置编码;
  3. 执行主查询,其返回的的数据将被索引;
  4. 执行后查询,以便完成所有必须的清理工作;
  5. 关闭到数据库的连接;
  6. 对短语进行排序 (或者学究一点, 索引类型相关的后处理;
  7. 再次建立到数据库的连接;
  8. 执行后索引查询,以便完成所有最终的清理善后工作;
  9. 再次关闭到数据库的连接。

大多数参数是很直观的,例如数据库的用户名、主机、密码。不过,还有一些细节上的问题需要讨论。

区段查询

索引系统需要通过主查询来获取全部的文档信息,一种简单的实现是将整个表的数据读入内存,但是这可能导致整个表被锁定并使得其他操作被阻止(例如:在MyISAM格式上的INSERT操作),同时,将浪费大量内存用于存储查询结果,诸如此类的问题吧。为了避免出现这种情况,Sphinx支持一种被称为区段查询的技术. 首先,Sphinx从数据库中取出文档ID的最小值和最大值,将由最大值和最小值定义自然数区间分成若干份,一次获取数据,建立索引。 后查询(sql_post) vs. 索引后查询(sql_post_index)

后查询和索引后查询的区别在于,当Sphinx获取到全部文档数据后,立即执行后查询,但是构建索引的过程仍然may因为某种原因失败。在另一方面,当索引后查询被执行时,可以理所当然的认为索引已经成功构造完了。因为构造索引可能是个漫长的过程,因此对与数据库的连接在执行后索引操作后被关闭,在执行索引后操作前被再次打开。

参考来源[ ]

Sphinx使用手册导航

安装

支持的操作系统|需要的工具|在Linux、BSD上安装Sphinx|在Windows上安装Sphinx|已知的安装问题和解决办法|Sphinx快速入门教程

建立索引

数据源|属性|MVA|索引|源数据的限制|字符集、大小写转换和转换表|SQL 数据源|xmlpipe 数据源|xmlpipe2 数据源|Python 数据源|实时索引更新|索引合并

搜索

匹配模式|布尔查询语法|扩展查询语法|权值计算|排序模式|结果分组|分布式搜索|searchd查询日志格式|MySQL 协议支持与SphinxQL

命令行工具参考

indexer命令参考|searchd命令参考|search命令参考|spelldump命令参考|indextool命令参考

MySQL存储引擎

SphinxSE 概览|安装 SphinxSE|使用 SphinxSE|通过 MySQL 生成片段