用 php 构建自定义搜索引擎

用 php 构建自定义搜索引擎

ID:15139795

大小:29.21 KB

页数:13页

时间:2018-08-01

用 php 构建自定义搜索引擎_第1页
用 php 构建自定义搜索引擎_第2页
用 php 构建自定义搜索引擎_第3页
用 php 构建自定义搜索引擎_第4页
用 php 构建自定义搜索引擎_第5页
资源描述:

《用 php 构建自定义搜索引擎》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用PHP构建自定义搜索引擎此文出处:天津网站建设-----天津文率科技(www.wenshuai.cn)技术总监博客虽然Google及其系列产品几乎无所不能,但是Web形式的强大搜索引擎并不能很好地适用于每个站点。如果站点内容已被高度专业化或已明确分类,那就需要使用Sphinx和PHP来创建一个优化的本地搜索系统。在Internet时代,人们希望信息能够像快餐一样被打包起来:能够快速无障碍使用,并且分为很小的单位(或者是以字节 大小为单位?)。实际上,为了满足急躁而又渴求信息的用户的需求,甚至最普通的Web站点现在都要求具有快速浏览样式的各种菜单:·RSS是比萨快递员,

2、会把新鲜出炉的比萨送上门。·网络日志是当地的中餐馆,为您献上喜爱的风味菜肴。·论坛是家常便饭(或者可能更恰当地说,“动物屋”中抢夺食物的场景)。·而搜索就像在当地的餐厅吃自助晚餐一样:不断将想吃的食物填满盘子就行,只要您的食道——还有您的椅子——撑得住。幸运的是,PHP开发人员可以找到各种RSS、blog和论坛软件来创建或者改进站点。而且,虽然Google和其他搜索站点几乎无所不能并且执行过滤通信,但是搜索引擎并不一定会良好地适应各个站点。例如,如果Web站点提供成百上千的全新和翻新的保时捷汽车零件,Google可能通过诸如“Carreraparts”之类的广义搜索找到

3、您的站点,但是对于更具体的“used1991Porsche911Targaheadlightbezel”查询,它可能不会得到精确结果。如果站点内容高度专业化,或者访问者期望搜索功能与现实工作流类似,那么最好在Web的全局搜索引擎基础上增加一个为您的站点量身定做的本地搜索系统(有关专业化搜索的更多实例,请参阅“Aneedleinabillionhaystacks”)。通过本文了解如何向PHP站点中添加一个快速、高效、开源和免费的搜索引擎。本文没有开发可见的Web站点。相反,重点讨论交付有效搜索结果所需的组件:数据库、索引、搜索引擎和PHP应用程序编程接口(API)。访问优

4、秀的sphinx要为站点提供自定义搜索功能,您必须有数据源和搜索该数据源的功能。对于Web应用程序,数据源通常是一个关系数据库,其中内置了一些搜索功能(Equality是一个简单的搜索运算符,与SQL运算符 LIKE 一样)。但是,一些搜索可能比数据库可以执行的搜索更加具体,或者搜索可能过于复杂,而导致固有的SQL JOIN 反应迟钝。海底捞针许多站点提供特定于某一个行业、职业或者娱乐的内容,例如医药、法律、音乐和汽车维修。深入研究这些内容可能要求使用特殊工具或者培训,或者仅需要使用一个索引来生成相关的实用结果。下面是一些需要定制搜索系统的常见搜索场景:·查找JoeHo

5、ckey所撰写的关于斯坦利杯(StanleyCup)的所有文章。·查找HPLaserJet3015All-in-One打印机的最新驱动程序。·查找DinosaurJr.参与大卫深夜脱口秀节目的电视片段。要加速搜索,您可以重新安排表,并由此简化底层查询(表和SQL查询优化高度依赖于模式和引擎。可通过在线搜索查找有关数据库性能的各种文章和书籍)。此外,您可以添加一个专门化的搜索引擎。应用哪种形式的搜索引擎还依赖于数据的形式(和数量)和预算。有许多选择可用:您可以将一个Google工具连接到您的网络中,购买Endeca或其他大型商业搜索产品,或者尝试Lucene。但是在很多情

6、况下,使用商业产品都有点小题大做,或者浪费运营预算,并且Lucene在2007年7月编写时并未提供PHPAPI。作为一个备选方案,考虑一下 Sphinx,它是一种开源和免费的搜索引擎,可以非常快速地搜索文本。例如,在一个几乎有300,000行及五个索引列(每列包含大约15个单词)的活动数据库中,Sphinx可以在1/100秒内得到“这些单词中任何一个单词”的搜索结果(在运行DebianLinux®Sarge的2-GHzAMDOpteron处理器、1GBRAM的计算机上)。Sphinx提供了大量功能,包括:·它可以为能够表示为字符串的所有数据建立索引。·它可以以各种方式为

7、相同数据建立索引。对于多个索引,每个索引都针对特定目的而定制,您可以选择最适当的索引来优化搜索结果。·它可以把属性与每条索引数据关联起来。然后您可以使用一个或多个属性来进一步过滤搜索结果。·它支持词法,因此搜索单词“cats”还会找到词根“cat”。·您可以在许多计算机中分发Sphinx索引,从而提供故障恢复功能。·它可以创建任意长度的单词前缀索引和可变长度的中缀子字符串的索引。例如,一个零件号可以是10个字符宽。前缀索引将匹配位于字符串开头处的所有可能的子字符串。中缀索引将匹配在字符串内任意位置的子字符串。·您可以在MySQLV5内将其

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。