首頁 > 資料庫 > mysql教程 > 為什麼我的 MySQL 全文搜尋失敗,如何修復?

為什麼我的 MySQL 全文搜尋失敗,如何修復?

Mary-Kate Olsen
發布: 2024-11-30 12:11:15
原創
307 人瀏覽過

Why is My MySQL FULLTEXT Search Failing, and How Can I Fix It?

MySQL 全文搜尋失敗:深入研究問題

在MySQL 中針對包含產品名稱的表執行全文搜尋時,預期結果未能在全文搜尋出現。該表包含兩行:“one pen”和“null”,其中只有第一個產品名稱被正確索引以進行全文搜尋。

重新評估表格結構

查看建表語句後,很明顯「Product」欄位已包含在 FULLTEXT 索引中。然而,問題仍然存在,導致搜尋查詢不成功。

影響全文搜尋效能的因素

分析查詢發現它只包含一個單詞,「筆」。全文搜尋需要一定程度的文本多樣性才能產生有意義的結果。使用最少的數據可能會對其有效性產生不利影響。將全面的資料集輸入到搜尋中可以顯著改善結果。

管理停用詞

MySQL 使用一個停用詞列表來表示在搜尋過程中被跳過的無關緊要的術語。為了滿足特定要求,可以透過修改“ft_stopword_file”系統變數來覆寫這些清單。可以指定自訂停用詞文件,或者可以完全停用停用詞過濾。

其他搜尋查詢

為了進一步示範全文搜尋功能,各種搜尋查詢被執行:

  • 'score' IN BOOLEAN模式: 辨識出含有「score」一詞的產品。
  • 'harpoon' 布林模式: 包含「harpoon」的配對產品。
  • 布林模式中的「banana」: 搜尋包含「banana」的產品存在。
  • 布林模式中的「years」: 尋找包含「years」的產品。

對相關結果進行排名

為了提供更細緻的搜索,查詢可以包含「相關性」列。此欄位根據搜尋字詞的出現情況為每個符合產品分配權重。使用查詢:

`
SELECT id, prod_name, match( prod_name )
AGAINST ( 'harpoonarticle' IN BOOLEAN MODE ) ASROM
FROM 關聯關聯 關聯
`

結果依序排列相關性降序排列,優先考慮「harpoon」和「article」出現率較高的產品。

結論

全文搜尋需要大量資料集才能產生有效的結果結果。停用詞也會影響搜尋結果,其管理至關重要。透過利用相關性權重,使用者可以獲得微調的搜尋結果,從而提高用戶滿意度和整體搜尋體驗。

以上是為什麼我的 MySQL 全文搜尋失敗,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板