php實作站內搜尋的方法:1.利用SQL的LIKE來實現站內搜尋;2、利用Google搜尋引擎API以及Google搜尋功能,建立站內搜尋;3、透過「PHP MYSQL SCWS」做站內搜尋引擎.
推薦:《PHP影片教學》
PHP MYSQL SCWS 做自己的站內搜尋引擎
天底下竟然有這麼一種站內搜尋引擎,它支援中文分詞,支援全文搜尋,無須任何擴充,不用對伺服器進行任何設定,只要支援PHP和MYSQL就行,他操作簡單,效率高,效果好.這就是PHP MYSQL SCWS 站內搜尋引擎.
事實上,無論大小,從新浪到愛卡汽車網,從日PV過億的網站到我自己的個人博客,都需要站內搜尋引擎.站內搜尋引擎對於網站的作用,是不言而喻的.最直接的作用是讓用戶以最直接的方式,最快的速度在你的網站裡找到他想要的東西.而不是再到百度谷歌去,搜尋到別人的網站.
(一) 最基本的站內搜素利用SQL的LIKE
#例如
SELECT * FROM bbs_threads WHERE subject LIKE '%搜索引擎%' LIMIT 10
優點:太容易了,是人都會
缺點: 1. 每次執行LIKE語句都需要一次表遍歷,用的是字符串比較,效率太低. 2. 不能分詞,只能整句話搜尋.如果搜尋詞較長,幾乎搜尋不出任何結果.如果加上分詞功能,相當於一條語句裡使用好幾個LIKE,同1.
(二) 谷歌自訂搜尋
利用Google搜尋引擎API以及Google強大的搜尋功能,建立自己的站內搜尋.演示: http://www.lusongsong.com/search.html?cx=014724041144905348996:pf5fnahnzuw&cof=FORID:11&ie=UTF-8&q=危機&sa =搜尋&siteurl=lusongsong.com/
優點: 省心,沒有比這個再省心的了.你啥都不用管.谷歌都是自家的了,人家的搜尋演算法,那怎麼是咱們能比得了的呢.
缺點: 1.需要使用IFRAME,或者直接打開谷歌的頁面,或者用更複雜的API來實現. 2.只能按照文本搜索,只能全站搜索.我要想在某個頻道下,搜尋指定類型的文章等要求谷歌就不能實現了.一句話,就是不能自定義. 3.如果你的網站小,谷歌人家都不帶收錄你,啥也搜不出來你咋辦?
(三) lucene 全世界最好的開放原始碼搜尋引擎
呃…沒啥好介紹的,直接看優缺點吧
#優點: 完全開放原始碼,完全可以自訂,完全…..
缺點: java寫的,哥不會.你會java?你改個試試
(四) PHP MYSQL SCWS 做自己的站內搜尋引擎
千呼萬喚始出來!
MySQL支援全文索引和搜尋。全文索引在 MySQL 中是一個 FULLTEXT 類型索引。 FULLTEXT 索引用於 MyISAM 表,可以在 CREATE TABLE 時或之後使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上建立。
函數 MATCH() 對照一個文字集(包含在一個 FULLTEXT 索引中的一個或多個列的列集)執行一個自然語言搜尋一個字串。搜尋字串做為 AGAINST() 的參數被給定。搜尋以忽略字母大小寫的方式執行。對於表格中的每個記錄行,MATCH() 會傳回相關性值。即,在搜尋字串與記錄行在 MATCH() 清單中指定的列的文字之間的相似性尺度。
當 MATCH() 被使用在一個 WHERE 子句中時,傳回的記錄行會自動地以相關性從高到低的順序排序。相關性值是非負的浮點數。零相關性意味著不相似。
在英語環境下,使用PHP和MYSQL就完全能夠建立全文檢索環境.步驟為:
#1. 建立內容表,灌入資料,在需要全文檢索的欄位上建立FULLTEXT索引
2. 利用MATCH函數執行搜尋條件
3. 處理傳回的資料,顯示結果
簡單吧。 。 。
問題是,中文不是自分詞的語言,在MYSQL開來一大段中文就是一個單字,全文檢索就失效了.解決這個問題的辦法是,在灌入資料和搜尋前,利用其他的工具來進行分詞,將大段的中文分隔為一個一個的詞,類似與英文的單字.
最簡單的工具就是SCWS. 官方網站: http://www.ftphp.com /scws/
SCWS 是Simple Chinese Words Segmentation 的縮寫,即簡易中文分詞系統。
這是一套以詞頻字典為基礎的機械中文分詞引擎,它能將一整段的漢字基本上正確的切分成詞。詞是漢語的基本語素單位,而書寫的時候不像英語會在詞之間用空格分開,所以如何準確而又快速的分詞一直是中文分詞的攻關難點。
SCWS 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。
SCWS提供了纯PHP代码编写的中文分词类,使它不需要做任何额外的扩展就能在机会所有的服务器上使用.
支持中文的基于PHP+MYSQL的全文检索的步骤为:
1. 建立内容表(,将数据分词),灌入数据,在需要全文检索的字段上建立FULLTEXT索引
2. (将要搜索的内容先分词再) 利用MATCH函数执行搜索条件
3. 处理返回的数据,显示结果
仍然是SO EASY!
一个演示的例子: http://www.bnet.com.cn/files/search.php?word=%CA%D5%B9%BA&page=3
执行搜索的语句是:
SELECT SQL_CALC_FOUND_ROWS *, MATCH (titlewords, keywords, author, contentwords) AGAINST ('$words') AS matchscore FROM search WHERE MATCH (titlewords, keywords, author, contentwords) AGAINST ('$words') > 0.5
以上是php怎麼實現站內搜索的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器