PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP高级编程 >> 高级应用 >> 

用 PHP 构建自定义搜索引擎

用 PHP 构建自定义搜索引擎

来源:网页教学网  作者:Martin Streicher  发布时间:2007-12-08
虽然 Google 及其系列产品几乎无所不能,但是 Web 形式的强大搜索引擎并不能很好地适用于每个站点。如果站点内容已被高度专业化或已明确分类,那就需要使用 Sphinx 和 PHP 来创建一个优化的本地搜索系统。 在 Internet 时代,人们希望信息能够像快餐一样被打包起来:能

}
}

exit;
?<


要测试代码,需要为 Sphinx 创建 log 目录,启动 searchd,然后运行 PHP 应用程序,如下所示:


清单 13. PHP 应用程序

$ sudo mkdir -p /var/log/searchd
$ sudo /usr/local/bin/searchd --config /usr/local/etc/sphinx.conf
$ php search.php
9
Array
(
[fields] =< Array
(
[0] =< partno
[1] =< description
)

[attrs] =< Array
(
[assembly] =< 1
[model] =< 1
)

[matches] =< Array
(
[9] =< Array
(
[weight] =< 1
[attrs] =< Array
(
[assembly] =< 5
[model] =< 3
)

)

)

[total] =< 1
[total_found] =< 1
[time] =< 0.000
[words] =< Array
(
[cylind] =< Array
(
[docs] =< 2
[hits] =< 2
)

)
)


输出为 9:匹配的单行的正确主键。如果 Sphinx 找到匹配,相关数组 $result 将包含名为 results 的元素。浏览 print_r() 的输出以查看返回的其他内容。

注意事项:total_found 是在索引中找到的匹配总数,而 found 是返回的结果数。这两者可能不同,因为您可以更改每次返回多少个匹配结果以及要返回哪批匹配结果,哪个结果利于对冗长的结果列表分页。请查看 API 调用 SetLimits()。一个分页示例是用 $cl-



Sphinx 还有更多的功能可以利用。我在这里仅仅介绍了最浅显的一部分,但是您现在有一个可以工作的现实示例作为基石来扩展您的技能。

仔细研读随发行版附带的样例 Sphinx 配置文件 /usr/local/etc/sphinx.conf.dist。该文件中的注释将说明每个 Sphinx 参数可以实现的功能;展示如何创建分布式冗余配置;并说明如何继承基本设置以避免源代码及索引中的重复。Sphinx README 文件还是十分丰富的信息源,包括如何将 Sphinx 直接嵌入 MySQL V5 -- 不需要使用守护程序。

Tags: 搜索引擎   索引   搜索   数据   php   引擎   自定义  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号