我一直在尋找PHP,SQL根據搜索條件從DB中檢索數據的開放腳本。現在,每個腳本我偶然發現了也不會在此順利:我在哪裏可以找到優秀的數據庫搜索引擎腳本?
說我要找的「奧巴馬 同性戀權利的政策」好嗎?但在DB 有「同性戀的奧巴馬政策和 他們的權利 - 誠實的文章」。儘管這是一個相關的結果, 定期搜索與通配符不會 檢索任何東西。
你知道如何解決這個問題嗎?我不願意自己寫一個,加上它是一個容易出錯的方法。顯然有很多網站使用這種機制,我只是沒有找到那樣的幸運。
謝謝!
我一直在尋找PHP,SQL根據搜索條件從DB中檢索數據的開放腳本。現在,每個腳本我偶然發現了也不會在此順利:我在哪裏可以找到優秀的數據庫搜索引擎腳本?
說我要找的「奧巴馬 同性戀權利的政策」好嗎?但在DB 有「同性戀的奧巴馬政策和 他們的權利 - 誠實的文章」。儘管這是一個相關的結果, 定期搜索與通配符不會 檢索任何東西。
你知道如何解決這個問題嗎?我不願意自己寫一個,加上它是一個容易出錯的方法。顯然有很多網站使用這種機制,我只是沒有找到那樣的幸運。
謝謝!
你似乎在尋找一個全速文本搜索引擎的種類。
DBMS在存儲和檢索部署信息方面做得非常出色。當你發現他們更有限的,當它涉及到的關鍵詞的基礎上進行搜索,部分的標題等
一些的DBMS,提供一些內置或多或少集成全文檢索引擎,這通常是一個不錯的選擇,因爲它允許使用SQL功能和謂詞或FT功能處理數據(或其中的一部分)。
MySQL確實支持全文搜索功能(感謝Yacoby的信息!!!)。例如參見MySQL 5.4 documentation on Full-Text Search functions。
請注意,此功能據說很慢(請參閱此答案後的評論)。
如果你不想看看MySQL的FT搜索功能,有很多商業和免費的,其中許多是開源的全文引擎。
我曾經使用過,並建議
但你應該尋找到一個更完整的列表,在此Wikipedia article關於這一主題。
你會想要使用數據庫full text search功能。實施應該能夠通過匹配搜索條件的結果來返回結果。
大多數數據庫都具有此功能,但至少使用MySQL時,它不會索引長度小於4個字符的字詞(默認情況下),這是共享主機上的問題,因爲他們可能不願改變它。
如果你想要更高的性能解決方案還是有不支持全文檢索數據庫,有各種語言的專用搜索引擎,如Lucene
你使用哪種數據庫? Mysql,sqlite,ms sql,Oracle ...? – tuinstoel 2009-11-24 18:45:32
MySQL,根據我的理解,這通常是與PHP一起使用的RDBMS。 – Gal 2009-11-25 13:10:27