2014-01-15 75 views
0

我正在努力尋找爲我的網站創建搜索引擎的最佳方式。所有需要搜索的項目都在mysqli數據庫中,但我也在數據庫中有需要從搜索中排除的表格(即用戶信息,導航菜單表格等)。到目前爲止,我唯一提出的解決方案是單獨搜索每個表中的關鍵字,然後顯示結果。 有沒有更簡單的方法來做到這一點?我想有一個「表組」或類似的東西,所以我的查詢可以是這樣的:試圖爲我的網站建立一個搜索引擎

SELECT * FROM table_group WHERE any_column LIKE 「%search_string%」 

該數據庫擁有約30桌的權利,但可以動態添加表,這將成長爲網站使用更多。什麼是最好的方式去做這件事?

+0

我建議您使用Sphinx http://sphinxsearch.com/或Elasticsearch http://www.elasticsearch.org/進行全文搜索。對這些技術進行研究 –

+0

您可以在您的網站上使用[Google Custom Search Engine](http://www.google.com/coop/cse/)。 –

回答

0

如果你想追求創建一個搜索引擎查詢數據庫的想法,我認爲你必須查詢數據庫的元數據:表的列表和每個表的字段列表。

但是,這很難遵循,因爲最後你必須以可打印的視圖向用戶呈現信息:找到一個合適的名稱是不一樣的(因此你必須提供頁面userInfo。 php-向用戶說一個例子)或公司名稱(因此你必須提供一個完全不同的頁面)

我認爲至少你必須根據你所擁有的頁面創建搜索元素這意味着您必須創建一個包含搜索引擎信息的表格:如何顯示此信息,以及它應在哪些表格/字段中進行搜索等。

即使會有技巧。如果用戶搜索「smyth」?搜索引擎是否足夠聰明以返回「史密斯」?如果你有兩個字段,一個名字和其他機智的姓氏,會發生什麼用戶鍵入「約翰史密斯」?