踏得网站内教程和手册的查找功能,建立在Sphinx上,其最新发布版本为2.2.11。
Sphinx既能支持数据库索引,也支持对文本文件(xml、html、txt等)和json结构文件进行直接索引。
对文本文件建立索引的主要步骤如下:
1. 使用脚本程序把所有文件的路径录入到数据库中的一张表中(至少包含2个字段,id和全路径文件名)
2. 在sphinx.conf中添加相应的索引源(source)和索引定义(index)
sql_query = SELECT id,title,file_name,url,type from your_table_name
sql_file_field = file_name
3. 用sphinx api查询设置title有较高的权重
4. 分页处理时,按sphinx api返回的id排序,参见:
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_field
语法示例:ORDER BY field(id, 2, 1, 4);
5. 构建文件内容摘要列表,其中$docs为所有匹配文件的内容列表,$index为索引名,$opts里面可以定义样式和限制字数等:
$sphinx->BuildExcerpts($docs, $index, $keyword, $opts);