/*สร้างสภาพแวดล้อมการทดสอบ
WINXP(SP3)+SQL SERVER2005(SP3)*/
ถ้า object_id('tb') ไม่เป็นโมฆะ
วางตาราง tb
ไป
สร้างตาราง tb
(รหัสประจำตัว int (1,1)
ชื่อเรื่อง varchar (200)
รายละเอียดวาร์ชาร์ (1,000)
คีย์หลัก pk_id ข้อจำกัด (id) – จำเป็นเมื่อสร้างดัชนีข้อความแบบเต็ม
-
ใส่ลงใน tb
เลือก 'The Rockets กำลังจะลงนามนักกีฬามือใหม่',' มีรายงานว่าการเจรจาสัญญาระหว่าง Budinger และ Rockets เสร็จสิ้นเมื่อวานนี้ และ Budinger จะได้รับสัญญาเดียวกันกับ Taylor ก่อนหน้านี้สื่อเปิดเผยว่าสัญญาของเทย์เลอร์มีระยะเวลา 4 ปีและมีมูลค่ารวม 10,000 เหรียญสหรัฐ โดยสองปีแรกมีการรับประกันสัญญา Budinger คาดว่าจะประกาศการเซ็นสัญญาอย่างเป็นทางการเพื่อเข้าร่วมทีม Rockets ในอีกไม่กี่วันข้างหน้า -
สหภาพทั้งหมด
เลือก 'Weaver ได้รับการเปิดเผยว่าได้เซ็นสัญญากับยักษ์ใหญ่ชาวกรีก', 'ตามรายงานของ International Basketball Network อดีตผู้เล่น Rockets Van Weaver ได้เซ็นสัญญากับ Olympiacos ยักษ์ใหญ่ชาวกรีก วีเวอร์ได้รับสัญญาสองปีมูลค่า 10,000 ดอลลาร์ -
สหภาพทั้งหมด
เลือก 'สเปอร์สใช้เงินจำนวนมากเพื่อต่อสู้กับเลเกอร์ส', 'สเปอร์สได้เพิ่มนายพลหลายคนในช่วงปิดฤดูกาลฤดูร้อนนี้ หัวหน้าโค้ชเกร็ก วีชเปิดเผยเมื่อเร็ว ๆ นี้ในการให้สัมภาษณ์กับ Yahoo! ภาษีฟุ่มเฟือยเพื่อสร้างอาคารที่หรูหรา ผู้เล่นตัวจริงได้รับการออกแบบมาเพื่อต่อสู้กับเลเกอร์สและมุ่งมั่นเพื่อแชมป์สมัยที่ห้า -
สหภาพทั้งหมด
เลือก 'วอลเลซไม่เคยคิดที่จะออกจาก Motor City', 'Ben Wallace ตกลงที่จะกลับไปที่ Detroit Pistons และเซ็นสัญญา 10,000 ดอลลาร์ต่อปีกับ Pistons ตามเงินเดือนขั้นต่ำของทหารผ่านศึก ตามรายงานของ Daily Herald” คอลัมนิสต์ McGraw เปิดเผยว่าผู้เล่นฝ่ายรับภายในที่ครอง NBA ในเวลานั้นไม่เคยคิดจะออกจาก Pistons ด้วยซ้ำ -
สหภาพทั้งหมด
เลือก 'มิลเลอร์เก่งมากในการต่อสู้เพื่อความรักและไล่ตามภรรยาของเขา', 'สำหรับ "ผู้หลัง" ที่ไม่เคยเห็น Reggie Miller สร้าง "Miller Time" กับ Pacers เราจะแนะนำอดีตดารา NBA คนนี้อย่างไร เริ่มจากแบนเนอร์ที่เครื่องบินลากเหนือหาดมาลิบูในลอสแองเจลิสเมื่อวันก่อนได้ไหม ฉันเกรงว่าไม่มีผู้ปกครองคนใดเต็มใจทำเช่นนี้ -
สหภาพทั้งหมด
เลือก 'เหยา หมิง: ฉันไม่ได้ถือว่าเซี่ยงไฮ้เป็นโครงการลงทุน แต่ฉันมีความสุขที่ได้ทำธุรกิจในฐานะคนดี', "เหยา มิ" กล่าวว่า เหยา หมิง ผู้ไม่มีเอฟเฟกต์โฆษณาขาดแคลน ได้เข้าซื้อกิจการ สโมสรบาสเกตบอล Shanghai Oriental ที่ใกล้สูญพันธุ์ซึ่งแสดงให้เห็นว่าเขาต้องการหาเลี้ยงชีพให้กับอดีตทีมผู้ปกครองทำอะไรบางอย่างจริงๆ -
สหภาพทั้งหมด
เลือก 'The Rockets แพ้ Wizards เพื่อยุติสถิติของปี', 'ชุดค่าผสมของ Yao-Mai อยู่ในสภาพที่ไม่ดีในแคมเปญนี้ ทั้งสองคนร่วมมือกันเพื่อรีบาวด์ -
ขั้นตอนที่ 1: เปิดใช้งานการสร้างดัชนีข้อความแบบเต็มของฐานข้อมูล
sp_fulltext_database เปิดใช้งาน - เปิดใช้งานการจัดทำดัชนีข้อความแบบเต็มของฐานข้อมูล
ไป
ขั้นตอนที่ 2: สร้างแค็ตตาล็อกข้อความแบบเต็ม
สร้างแค็ตตาล็อกข้อความแบบเต็ม tb_fulltext
ในเส้นทาง N'D:Program FilesMicrosoft SQL Server2005MSSQL.1MSSQLFTData'
ด้วย Accent_sensitivity =on -- แยกแยะสำเนียง
การอนุญาต dbo;--เจ้าของแค็ตตาล็อกข้อความแบบเต็ม
ขั้นตอนที่ 3: สร้างดัชนีข้อความแบบเต็ม
สร้างดัชนีข้อความแบบเต็มบน tb
(ชื่อเรื่อง,รายละเอียด)
คีย์ดัชนี pk_id --ระบุคอลัมน์ดัชนี เพื่อปรับปรุงประสิทธิภาพ วิธีที่ดีที่สุดคือใช้ดัชนีแบบคลัสเตอร์
บน tb_fulltext
ด้วย change_tracking auto -- อัปเดตดัชนีข้อความแบบเต็มโดยอัตโนมัติเมื่อมีการแก้ไขข้อมูลในตารางที่เกี่ยวข้อง
ขั้นตอนที่ 4: ตัวอย่างแบบสอบถาม:
เลือก * จาก tb
โดยที่ประกอบด้วย((ชื่อ,รายละเอียด),'เหยาหมิง')
ไวยากรณ์แบบสอบถาม:
1. ค้นหาคำเฉพาะ: มี (รายละเอียด 'เหยาหมิง')
2. ค้นหาวลีเฉพาะ: ใช้ "" เพื่อใส่วลีด้วยเครื่องหมายคำพูดคู่ ประกอบด้วย (รายละเอียด 'Yao Ming Shanghai')
3. ค้นหาคำและวลีจากหลายคอลัมน์: ประกอบด้วย ((ชื่อ,รายละเอียด),'เหยาหมิงเซี่ยงไฮ้')
4. ค้นหาคำหรือวลีที่ขึ้นต้นด้วยข้อความที่ระบุ: contains(detail,'"Yao Ming*"')
หากข้อความและเครื่องหมายดอกจันไม่ได้อยู่ในเครื่องหมายคำพูดคู่ การค้นหาข้อความแบบเต็มจะถือว่าเครื่องหมายดอกจันเป็นอักขระตัวเดียว หากเป็นการค้นหาวลี แต่ละคำในวลีจะถือเป็นคำนำหน้า contains(detail,'"Yao Ming Shanghai*"') จะส่งกลับผลลัพธ์โดยที่คำแรกขึ้นต้นด้วย Yao Ming และคำที่สองขึ้นต้นด้วย Shanghai
5. ค้นหารูปแบบของคำเฉพาะ: มี (รายละเอียด, 'formsof (inflectional, ขี่)')
จะส่งคืนแถวที่มีการขี่ ขี่ ขี่ ขี่ในตาราง
6. ค้นหาคำหรือวลีที่ใกล้เคียงกับคำหรือวลีอื่น: มี (รายละเอียด 'เหยาหมิงใกล้เซี่ยงไฮ้')
7. คำหรือวลีที่ใช้ค่าถ่วงน้ำหนัก: ประกอบด้วย(คำอธิบาย,'isabout(น้ำหนักประสิทธิภาพ(.8),น้ำหนักสบาย(.4),น้ำหนักเรียบ(.2))')
น้ำหนักจะกำหนดค่าการถ่วงน้ำหนักระหว่าง 0.0 ถึง 1.0 ให้กับแต่ละคำหรือวลี
8. ใช้เงื่อนไขการค้นหาหลายรายการ: มี(รายละเอียด,'"เหยาหมิง" หรือ "เซี่ยงไฮ้")
มี(รายละเอียด,'"เหยา หมิง" และ "เซี่ยงไฮ้"')
มี(รายละเอียด,'"เหยา หมิง" ไม่ใช่ "เซี่ยงไฮ้"')
9. คุณยังสามารถใช้ตัวแปรใน contains ได้
10. ค้นหาคำพ้องความหมายประกอบด้วย (title, 'formsof (thesaurus, on)')
【ทดสอบ】
ในตัวอย่างข้างต้น ให้ดำเนินการ
เลือก * จาก tb
โดยที่ (ชื่อ 'เซี่ยงไฮ้')
ผลลัพธ์:
รายละเอียดชื่อรหัส
6 เหยา หมิง: เขาไม่ถือว่าเซี่ยงไฮ้เป็นโครงการลงทุน เขามีความสุขที่ได้เป็นนักธุรกิจที่ดีและกลายเป็นคนดี "เหยา หมิง" ผู้ไม่มีผลงานด้านการโฆษณาได้เข้าซื้อกิจการ Shanghai Oriental สโมสรบาสเกตบอลซึ่งจวนจะสูญพันธุ์ซึ่งแสดงให้เห็นว่าเขาต้องการทำอะไรบางอย่างเพื่อทีมพ่อแม่ของเขาจริงๆ
แต่ดำเนินการ:
เลือก * จาก tb
โดยที่ (ชื่อ, '上')
ผลลัพธ์ที่ได้คือเซตว่าง
เหตุผล: เมื่อทำการสืบค้นดัชนีข้อความแบบเต็ม "上" เป็นคำแทรกในภาษาจีนตัวย่อ ซึ่งจะถูกละเว้นในระหว่างการสืบค้น นอกจากนี้ เมื่อสร้างดัชนีข้อความแบบเต็ม โดยทั่วไปจะใช้วลีเป็น รายการดัชนีแทนที่จะเป็นคำเดียว
ถ้าคุณต้องการดำเนินการแบบสอบถามนี้อีกครั้ง และต้องการค้นหาผลลัพธ์ของแบบสอบถามแรก คุณสามารถปรับเปลี่ยนอรรถาภิธานของดัชนีข้อความแบบเต็มได้
เส้นทางที่มีไฟล์คำที่รบกวนและคำพ้องความหมาย:
D:Program FilesMicrosoft SQL Server2005MSSQL.1MSSQLFTData แต่ละชื่อไฟล์ควรจะสามารถระบุตัวตนได้อย่างง่ายดาย
ต่อไปนี้เป็นคำแนะนำโดยย่อเกี่ยวกับวิธีแก้ไขอรรถาภิธาน:
1. ใช้ Notepad เพื่อเปิด tschs.xml ซึ่งเป็นไลบรารีคำพ้องความหมายสำหรับภาษาจีนตัวย่อ
<XML ID="อรรถาภิธานการค้นหาของ Microsoft">
<!-- แสดงความคิดเห็นออก
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<การขยายตัว>
<sub>อินเตอร์เน็ตเอ็กซ์พลอเรอร์</sub>
<sub>IE</sub>
<sub>IE5</sub>
</การขยายตัว>
<การแทนที่>
<pat>NT5</pat>
<ตบ>W2K</ตบ>
<sub>วินโดวส์ 2000</sub>
</แทนที่>
<การขยายตัว>
<sub>วิ่ง</sub>
<sub>จ๊อกกิ้ง</sub>
</การขยายตัว>
</อรรถาภิธาน>
-
</XML>
อธิบาย:
<การแทนที่>
<pat>NT5</pat>
<ตบ>W2K</ตบ>
<sub>วินโดวส์ 2000</sub>
</แทนที่>
เป็นคำทดแทน กล่าวคือ เมื่อทำการสืบค้น W2K นั้น Windows 2000 จะเข้ามาแทนที่โดยอัตโนมัติสำหรับการสืบค้น
<การขยายตัว>
<sub>วิ่ง</sub>
<sub>จ๊อกกิ้ง</sub>
</การขยายตัว>
มันเป็นไลบรารีคำพ้องความหมาย นั่นคือ เมื่อทำการสืบค้น jog จะถูกค้นหาด้วย
ในตัวอย่างนี้ให้เพิ่ม:
<การขยายตัว>
<sub>ขึ้น</sub>
<sub>เซี่ยงไฮ้</sub>
</การขยายตัว>
2. ลบบรรทัดความคิดเห็นโดยเริ่มจากส่วนท้าย:
<!-- แสดงความคิดเห็นออก
-
3. ผลลัพธ์สุดท้ายคือ:
<XML ID="อรรถาภิธานการค้นหาของ Microsoft">
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<การขยายตัว>
<sub>อินเตอร์เน็ตเอ็กซ์พลอเรอร์</sub>
<sub>IE</sub>
<sub>IE5</sub>
</การขยายตัว>
<การแทนที่>
<pat>NT5</pat>
<ตบ>W2K</ตบ>
<sub>วินโดวส์ 2000</sub>
</แทนที่>
<การขยายตัว>
<sub>วิ่ง</sub>
<sub>จ๊อกกิ้ง</sub>
</การขยายตัว>
<การขยายตัว>
<sub>ขึ้น</sub>
<sub>เซี่ยงไฮ้</sub>
</การขยายตัว>
</อรรถาภิธาน>
</XML>
3. ดำเนินการคำสั่งแบบสอบถาม:
เลือก * จาก tb
โดยที่ประกอบด้วย (ชื่อ 'formsof (อรรถาภิธานบน)')
คุณจะเห็นว่าผลลัพธ์ของแบบสอบถามเหมือนกับมี (ชื่อ 'เซี่ยงไฮ้')