搜尋

首頁  >  問答  >  主體

排序MYSQL全文搜尋結果的相關性方法

<p>我對MYSQL相對較新,有一個問題困擾了我一段時間。我嘗試在各個地方搜尋答案,但是還沒有找到可接受的解決方案。 </p> <p>這是我目前運行的查詢,用於找到給定搜尋字詞的最佳匹配:</p> <pre class="brush:php;toolbar:false;">$query="SELECT * 從 `vocabulary` WHERE translation = 'word' OR translation LIKE '%word%'";</pre> <p>它傳回的結果是全面的,包括所有相關的行。然而,它們沒有按照任何特定的順序排序,我希望在PHP中列印結果時,首先顯示完全匹配的結果。像這樣:</p> <hr /> <p>1 | word <-完全符合</p><p> 2 | crossword <-按字母順序排序的部分匹配 /</p><p> 3 | words</p><p> 4 | wordsmith</p> <hr /> <p>非常感謝您提前的幫忙。 </p> <p>-macspacejunkie</p>
P粉938936304P粉938936304465 天前554

全部回覆(2)我來回復

  • P粉090087228

    P粉0900872282023-08-25 09:40:13

    LIKE不是全文搜尋。在全文搜尋中,MATCH(...) AGAINST(...)傳回一個可以近似表示相關性的匹配分數。

    回覆
    0
  • P粉039633152

    P粉0396331522023-08-25 00:44:30

    SELECT * from vocabulary 
    WHERE translation like 'word'  
    union all
    SELECT * from vocabulary 
    WHERE translation LIKE '%word%' and translation not like 'word'

    將會先列出精確比對

    回覆
    0
  • 取消回覆