mysql查詢擴(kuò)展技術(shù)圖文說明教程
發(fā)表時(shí)間:2023-09-06 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]查詢擴(kuò)展用來設(shè)法放寬所返回的全文本搜索結(jié)果的范圍?紤]下面的情況。你想找出所有提到 anvils 的注釋。只有一個(gè)注釋包含詞 anvils ,但你還想找出可能與你的搜索有關(guān)的所有其他行,即使它們不包含anvils 。這也是查詢擴(kuò)展的一項(xiàng)任務(wù)。在使用查詢擴(kuò)展時(shí),MySQL對數(shù)據(jù)和索引進(jìn)行兩遍掃描來完...
查詢擴(kuò)展用來設(shè)法放寬所返回的全文本搜索結(jié)果的范圍?紤]下面的情況。你想找出所有提到 anvils 的注釋。只有一個(gè)注釋包含詞 anvils ,但你還想找出可能與你的搜索有關(guān)的所有其他行,即使它們不包含anvils 。
這也是查詢擴(kuò)展的一項(xiàng)任務(wù)。在使用查詢擴(kuò)展時(shí),MySQL對數(shù)據(jù)和索引進(jìn)行兩遍掃描來完成搜索:
1.首先,進(jìn)行一個(gè)基本的全文本搜索,找出與搜索條件匹配的所有行;
2.其次,MySQL檢查這些匹配行并選擇所有有用的詞(我們將會(huì)簡要地解釋MySQL如何斷定什么有用,什么無用)。
3.再其次,MySQL再次進(jìn)行全文本搜索,這次不僅使用原來的條件,而且還使用所有有用的詞。
利用查詢擴(kuò)展,能找出可能相關(guān)的結(jié)果,即使它們并不精確包含所查找的詞。
只用于MySQL版本4.1.1或更高級的版本 查詢擴(kuò)展功能是在MySQL 4.1.1中引入的,因此不能用于之前的版本。
下面舉一個(gè)例子,首先進(jìn)行一個(gè)簡單的全文本搜索,沒有查詢擴(kuò)展:
輸入:
select note_text from productnotes where match(note_text) against('anvils');
輸出:
分析:只有一行包含詞 anvils ,因此只返回一行。
下面是相同的搜索,這次使用查詢擴(kuò)展:
輸入:
select note_text from productnotes where match(note_text) against('anvils' with query expansion);
輸出:
分析:這次返回了7行。第一行包含詞 anvils ,因此等級最高。第二行與 anvils 無關(guān),但因?yàn)樗谝恍兄械膬蓚(gè)詞( customer和 recommend ),所以也被檢索出來。第3行也包含這兩個(gè)相同的詞,但它們在文本中的位置更靠后且分開得更遠(yuǎn),因此也包含這一行,但等級為第三。第三行確實(shí)也沒有涉及 anvils (按它們的產(chǎn)品名)。
正如所見,查詢擴(kuò)展極大地增加了返回的行數(shù),但這樣做也增加了你實(shí)際上并不想要的行的數(shù)目。
行越多越好 表中的行越多(這些行中的文本就越多),使用查詢擴(kuò)展返回的結(jié)果越好。
以上就是mysql查詢擴(kuò)展技術(shù)教程的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。