php实现站内搜索的方法

  介绍

这篇文章给大家分享的是有关php实现站内搜索的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

php实现站内搜索的方法:1,利用SQL的像来实现站内搜索;2,利用谷歌搜索引擎API以及谷歌搜索功能,建立站内搜索;3,通过“php + MYSQL +标准铜线”做站内搜索引擎。

<强> php + MYSQL +标准铜线做自己的站内搜索引擎

天底下竟然有这么一种站内搜索引擎,它支持中文分词,支持全文搜索,无须任何扩展,不用对服务器进行任何设置,只要支持php和MYSQL就行,他操作简单,效率高,效果好。这就是PHP + MYSQL +标准铜线站内搜索引擎。

事实上,无论大小,从新浪到爱卡汽车网,从日光伏过亿的网站到我自己的个人博客,都需要站内搜索引擎。站内搜索引擎对于网站的作用,是不言而喻的。最直接的作用是让用户以最直接的方式,最快的速度在你的网站里找到他想要的东西。而不是再到百度谷歌去,搜索到别人的网站。

(一)最基本的站内搜素利用SQL的像

例如

SELECT *从bbs_threads主题像& # 39;%搜索引擎% & # 39;限制10

优点:太容易了,是人都会

缺点:1。每次执行像语句都需要一次表遍历,用的是字符串比较,效率太低。2. 不能分词,只能整句话搜索。如果搜索词较长,几乎搜索不出任何结果。如果加上分词功能,相当于一条语句里使用好几个,同1 .

(二)谷歌自定义搜索

利用谷歌搜索引擎API以及谷歌强大的搜索功能,建立自己的站内搜索。演示:http://www.lusongsong.com/search.html?cx=014724041144905348996: pf5fnahnzuw&咖啡=FORID: 11, ie=UTF-8& q=危机和sa=搜索,siteurl=lusongsong.com/

优点:省心,没有比这个再省心的了,你啥都不用管。谷歌都是自家的了,人家的搜索算法,那怎么是咱们能比得了的呢。

缺点:1。需要使用IFRAME,或者直接打开谷歌的页面,或者用更复杂的API来实现。2 .只能按照文本搜索,只能全站搜索。我要想在某个频道下,搜索指定类型的文章等要求谷歌就不能实现了。一句话,就是不能自定义。3 .如果你的网站小,谷歌人家都不带收录你,啥也搜不出来你咋办?

(三)lucene全世界最好的开放源代码搜索引擎

呃…没啥好介绍的,直接看优缺点吧

优点:完全开放源代码,完全可以自定义,完全……

缺点:java写的,哥不会。你会java ?你改个试试

(四)PHP + MYSQL +标准铜线做自己的站内搜索引擎

千呼万唤始出来!

MySQL支持全文索引和搜索。全文索引在MySQL中是一个全文类型索引.FULLTEXT索引用于MyISAM表,可以在创建表时或之后使用ALTER TABLE或创建索引在CHAR、VARCHAR或文本列上创建。

函数匹配()对照一个文本集(包含在一个全文索引中的一个或多个列的列集)执行一个自然语言搜索一个字符串。搜索字符串做对()的为参数被给定。搜索以忽略字母大小写的方式执行。对于表中的每个记录行,匹配()返回一个相关性值,即在搜索字符串与记录行匹配()列在表中指定的列的文本之间的相似性尺度。

当匹配()被使用在一个地方子句中时,返回的记录行被自动地以相关性从高到低的次序排序。相关性值是非负的浮点数字。零相关性意味着不相似。

在英语环境下,使用PHP和MySQL就完全能够建立全文检索环境。步骤为:

1。建立内容表,灌入数据,在需要全文检索的字段上建立全文索引

2。利用匹配函数执行搜索条件

3。处理返回的数据,显示结果

简单吧…

问题是,中文不是自分词的语言,在MYSQL开来一大段中文就是一个单词,全文检索就失效了。解决这个问题的办法是,在灌入数据和搜索前,利用其他的工具来进行分词,将大段的中文分隔为一个一个的词,类似与英文的单词。

最简单的工具就是标准铜线。官方站点:http://www.ftphp.com/scws/

标准铜线是简单的中文单词分割的缩写,即简易中文分词系统。

这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词,词是汉语的基本语素单位,而书写的时候不像英语会在词之间用空格分开,所以如何准确而又快速的分词一直是中文分词的攻关难点。

标准铜线在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称,人的名,地名,数字年代等规则集,经小范围测试大概准确率在90% ~ 95%之间,已能基本满足一些中小型搜索引擎,关键字提取等场合运用。标准铜线采用纯C代码开发,以类unix操作系统为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持GBK, utf - 8,繁体等汉字编码,切词效率高。

php实现站内搜索的方法