簡體   English   中英

PHP的MySQL搜索關鍵字的描述

[英]php mysql search description for keywords

我正在創建一個網站,用戶可以上傳圖像並為其編寫描述。 我想讓用戶能夠根據他們想要檢索的圖像來搜索描述。

最初,我決定轉換用戶在將圖像上傳到關鍵字時輸入的描述,並將關鍵字鏈接到圖像,在這種情況下,當用戶稍后在搜索中對描述進行搜索時,他們輸入的描述將轉換為關鍵字,將以某種方式為這些關鍵字生成同義詞,所有這些關鍵字都將針對數據庫中的關鍵字進行搜索。

最近,我讀到了有關mysql全文搜索的信息。 我創建了一個包含描述和圖像ID的表,並使用全文本搜索功能嘗試了幾次查詢,由於字長限制和停用詞,大多數搜索似乎均未返回任何結果。 這是我的測試查詢:

SELECT * FROM descriptions WHERE MATCH (description) AGAINST ('same' IN BOOLEAN MODE);

表中有一個條目,其描述包含關鍵字“ same”,但未返回任何結果。

我的問題是,在說明表上使用'LIKE%keywords%'還是在說明表上使用FTS還是堅持使用關鍵字表方法更好?

使用LIKE,您可以采用三種方法。

1)如果包含所有單詞的順序相同(關鍵字:一架飛機)

SELECT * FROM descriptions WHERE description LIKE('%One airplane%');

2)如果包含所有單詞,但順序無關緊要

SELECT * FROM descriptions WHERE description LIKE('%One%') AND description LIKE('% airplane%');

3)如果包含一些單詞

SELECT * FROM descriptions WHERE description LIKE('%One%') OR description LIKE('% airplane%');

現在,您可以選擇對搜索的嚴格程度。

如果要使用第二個或第三個實現,則將使用“ space”將關鍵字與字符串分開,並為數組中的每個項目添加一個like。

暫無
暫無

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

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