簡體   English   中英

MySQL:在全文搜索中查找多個單詞-僅完全匹配

[英]MySQL: Finding multiple words in full text search - exact matches only

我正在編寫一些代碼來自動標記一些文章。

我有一個標簽數組和一個文章表。 我運行以下查詢來檢查與標簽匹配的標題:

SELECT headline 
  FROM `news` 
 WHERE MATCH(headline) AGAINST ("+Green +Day" IN BOOLEAN MODE)

這會找到標題中帶有確切短語“ Green Day”的所有文章-如果沒有第一個+,我將獲得僅包含單詞“ Green”的文章。

這並不完美,某些標簽會導致結果不准確-例如,名為Die! Die! Die!的標簽Die! Die! Die! Die! Die! Die! (不要問)返回每個標題中帶有“ die”字樣的標題。

有什么明顯的我想念的地方嗎? 我想要的是獲得包含整個短語的標題,並以准確的方式輸入。

據我在文檔中看到的,使用引號就足夠了。 從文檔頁面上的示例中:

“一些單詞”

查找包含確切短語“某些單詞”的行(例如,包含“某些智慧單詞”但不包含“某些干擾單詞”的行)。 請注意,將短語括起來的“”字符是界定短語的運算符,而不是將搜索字符串本身括起來的引號。

您必須在雙引號周圍加上多余的單引號,這意味着要進行精確的單詞查詢。 +運算符僅表示AND邏輯。

SELECT headline 
  FROM `news` 
 WHERE MATCH(headline) AGAINST ('"+Green +Day"' IN BOOLEAN MODE)

@Matt-使用Mitch的代碼匹配“ Terror”的原因是因為您沒有在第一個%字符后留空格。 精確搜索單個單詞的正確語法如下所示

SELECT headline FROM news WHERE headline LIKE '% Green Day %' 

這將滿足您檢索以完全相同的方式檢索輸入的單詞的請求。

如果要匹配整個短語,則應執行以下操作:

SELECT headline FROM news WHERE headline LIKE '%Green Day%'

這樣一來,您就會在標題中返回帶有“綠色日”字樣的結果。

暫無
暫無

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

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