用 php 构建自定义搜索引擎
来源: 阅读:474 次 日期:2015-08-12 15:09:58
温馨提示: 小编为您整理了“用 php 构建自定义搜索引擎”,方便广大网友查阅!

虽然 google 及其系列产品几乎无所不能,但是 web 形式的强大搜索引擎并不能很好地适用于每个站点。如果站点内容已被高度专业化或已明确分类,那就需要使用 sphinx 和 php 来创建一个优化的本地搜索系统。

在 internet 时代,人们希望信息能够像快餐一样被打包起来:能够快速无障碍使用,并且分为很小的单位(或者是以字节 大小为单位?)。实际上,为了满足急躁而又渴求信息的用户的需求,甚至最普通的 web 站点现在都要求具有快速浏览样式的各种菜单:

·rss 是比萨快递员,会把新鲜出炉的比萨送上门。

·网络日志是当地的中餐馆,为您献上喜爱的风味菜肴。

·论坛是家常便饭(或者可能更恰当地说,“动物屋” 中抢夺食物的场景)。

·而搜索就像在当地的餐厅吃自助晚餐一样:不断将想吃的食物填满盘子就行,只要您的食道 —— 还有您的椅子 —— 撑得住。

幸运的是,php 开发人员可以找到各种 rss、blog 和论坛软件来创建或者改进站点。而且,虽然 google 和其他搜索站点几乎无所不能并且执行过滤通信,但是搜索引擎并不一定会良好地适应各个站点。

例如,如果 web 站点提供成百上千的全新和翻新的保时捷汽车零件,google 可能通过诸如 “carrera parts” 之类的广义搜索找到您的站点,但是对于更具体的 “used 1991 porsche 911 targa headlight bezel” 查询,它可能不会得到精确结果。

如果站点内容高度专业化,或者访问者期望搜索功能与现实工作流类似,那么最好在 web 的全局搜索引擎基础上增加一个为您的站点量身定做的本地搜索系统(有关专业化搜索的更多实例,请参阅 “a needle in a billion haystacks”)。

通过本文了解如何向 php 站点中添加一个快速、高效、开源和免费的搜索引擎。本文没有开发可见的 web 站点。相反,重点讨论交付有效搜索结果所需的组件:数据库、索引、搜索引擎和 php 应用程序编程接口 (api)。

访问优秀的 sphinx

要为站点提供自定义搜索功能,您必须有数据源和搜索该数据源的功能。对于 web 应用程序,数据源通常是一个关系数据库,其中内置了一些搜索功能(equality 是一个简单的搜索运算符,与 sql 运算符 like 一样)。但是,一些搜索可能比数据库可以执行的搜索更加具体,或者搜索可能过于复杂,而导致固有的 sql join 反应迟钝。

海底捞针

许多站点提供特定于某一个行业、职业或者娱乐的内容,例如医药、法律、音乐和汽车维修。深入研究这些内容可能要求使用特殊工具或者培训,或者仅需要使用一个索引来生成相关的实用结果。

下面是一些需要定制搜索系统的常见搜索场景:

·查找 joe hockey 所撰写的关于斯坦利杯 (stanley cup) 的所有文章。

·查找 hp laserjet 3015 all-in-one 打印机的最新驱动程序。

·查找 dinosaur jr. 参与大卫深夜脱口秀节目的电视片段。

要加速搜索,您可以重新安排表,并由此简化底层查询(表和 sql 查询优化高度依赖于模式和引擎。可通过在线搜索查找有关数据库性能的各种文章和书籍)。此外,您可以添加一个专门化的搜索引擎。应用哪种形式的搜索引擎还依赖于数据的形式(和数量)和预算。有许多选择可用:您可以将一个 google 工具连接到您的网络中,购买 endeca 或其他大型商业搜索产品,或者尝试 lucene。但是在很多情况下,使用商业产品都有点小题大做,或者浪费运营预算,并且 lucene 在 2007 年 7 月编写时并未提供 php api。

作为一个备选方案,考虑一下 sphinx,它是一种开源和免费的搜索引擎,可以非常快速地搜索文本。例如,在一个几乎有 300,000 行及五个索引列

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map