mysql查詢擴充技術教程

巴扎黑
發布: 2017-05-12 14:18:44
原創
1229 人瀏覽過

查詢擴充功能用來設法放寬所傳回的全文本搜尋結果的範圍。考慮下面的情況。你想找出所有提到 anvils 的註釋。只有一個註解包含字 anvils ,但你還想找出可能與你的搜尋有關的所有其他行,即使它們不包含anvils 。

這也是查詢擴充功能的一項任務。在使用查詢擴充時,MySQL對資料和索引進行兩次掃描來完成搜尋:

1。首先,進行一個基本的全文本搜索,找出與搜尋條件相符的所有行;

2.其次,MySQL檢查這些匹配行並選擇所有有用的單字(我們將會簡要地解釋MySQL如何斷定什麼有用,什麼無用)。

3.再其次,MySQL再次進行全文本搜索,這次不僅使用原來的條件,而且還使用所有有用的詞。

利用查詢擴展,能找出可能相關的結果,即使它們並不精確地包含所尋找的字。

只用於MySQL版本4.1.1或更進階的版本 查詢擴充功能是在MySQL 4.1.1中引入的,因此不能用於先前的版本。

下面舉一個例子,首先進行一個簡單的全文本搜索,沒有查詢擴展:

輸入:

select note_text from productnotes where match(note_text) against('anvils');
登入後複製

輸出:

mysql查詢擴充技術教程

分析:只有一行包含詞anvils ,因此只回傳一行。

下面是相同的搜索,這次使用查詢擴充:

輸入:

select note_text from productnotes where match(note_text) against('anvils' with query expansion);
登入後複製

輸出:

mysql查詢擴充技術教程

分析:這次返回了7行。第一行包含詞 anvils ,因此等級最高。第二行與 anvils 無關,但因為它包含第一行中的兩個字( customer和 recommend ),所以也被檢索出來。第3行也包含這兩個相同的詞,但它們在文本中的位置更靠後且分開得更遠,因此也包含這一行,但等級為第三。第三行確實也沒有涉及 anvils (按它們的產品名)。

如所見,查詢擴充功能大大增加了傳回的行數,但這樣做也增加了你實際上並不想要的行的數目。

行越多越好 表中的行越多(這些行中的文字就越多),使用查詢擴充回傳的結果越好。

以上是mysql查詢擴充技術教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!