簡體   English   中英

使用PHP在MySQL中進行標記/全文搜索

[英]Tag/Fulltext-Search in MySQL with PHP

正如您從標題中看到的那樣,我正在開發一個應該提供搜索選項的項目。 用戶應輸入一些單個關鍵字,並且結果應按相關性列出。 因為我的數據庫大約有1k-2k行,所以我需要盡可能精確。 研究指出要制作更多包含行標記的表。 我為此做了一個原型,但是現在因為每個數據庫都已經存在,所以現在每行都要這樣做。 我讀過做某種“履帶式”裝置是可能的嗎? 我還聽說使用ISAM數據庫是一種選擇。

誰能建議我一個可能的解決方案? 還是一些例子?

我對PHP和MySQL有基本的了解。

親切的問候,Force0234

您需要將FULLTEXT INDEX添加到所有可搜索字段,並使用MATCH ... AGAINST關鍵字

SELECT * FROM searchable_table WHERE MATCH(searchable_field) AGAINST('Keyword');
SELECT *, MATCH(searchable_field, searchable_field2) AGAINST('Keyword') as Relevance FROM searchable_table WHERE MATCH(searchable_field, searchable_field2) AGAINST('Keyword');

注意:您可以在MATCH(...)中使用幾個字段,並在SELECT子句中使用它來獲取相關性。 不要猶豫使用兩次,MySQL將優化查詢。

請參閱MySQL文檔http://dev.mysql.com/doc/refman/5.6/en/innodb-fulltext-index.htmlhttp://dev.mysql.com/doc/refman/5.0/en/ fulltext-natural-language.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM