踏得網站內教程和手冊的查找功能,建立在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);