เมื่อสร้างเว็บไซต์ เจ้านายขอให้ฉันใช้ฟังก์ชันการค้นหาเช่น Baidu ในอดีต ASP ใช้การค้นหาแบบคลุมเครือและคำค้นหาที่ตรงกัน ไม่มีทาง. เมื่อค้นหาในอินเทอร์เน็ต ฉันพบว่ามีหลายวิธีในอินเทอร์เน็ต วิธีแรกคือการสร้างอรรถาภิธาน วิธีที่สองคือการใช้ส่วนประกอบการแบ่งส่วนคำ และวิธีที่สามคือสิ่งที่ฉันกำลังพูดถึง เทคโนโลยีการแบ่งส่วนคำอัตโนมัติ ไม่ใช่การแบ่งส่วนคำที่ชาญฉลาด แต่เป็นเพียงการจับคู่คำอื่นๆ สิ่งที่ดีที่สุดคือการสร้างคำศัพท์และขยายคำศัพท์ตามข้อมูลที่ผู้ใช้ป้อน แต่สำหรับเว็บไซต์ขนาดเล็กและขนาดกลาง สิ่งนี้อาจไม่จำเป็น
นี่คือการค้นหาการแบ่งส่วนคำประเภทที่สามที่ฉันกำลังพูดถึง รหัสมีดังนี้: ฉันจะไม่ลงลึกถึงวิธีใช้
-
ฟังก์ชั่นคีย์อัตโนมัติ (strKey)
CONST lngSubKey=2
Dim lngLenKey, strNew1, strNew2, i, strSubKey
'ตรวจสอบความถูกต้องตามกฎหมายของสตริง หากไม่ใช่ ให้ไปที่หน้าข้อผิดพลาด คุณสามารถตั้งค่าหน้าข้อผิดพลาดได้ตามความต้องการของคุณ
ถ้า InStr(strKey,"=")<>0 หรือ InStr(strKey,"`")<>0 หรือ InStr(strKey,"")<>0 หรือ InStr(strKey," ")<>0 หรือ InStr(strKey ," ")<>0 หรือ InStr(strKey,"")<>0 หรือ InStr(strKey,chr(34))<>0 หรือ InStr(strKey,"")<>0 หรือ InStr(strKey,", ")<>0 หรือ InStr(strKey,"<")<>0 หรือ InStr(strKey,"">")<>0 จากนั้น
Response.Redirect "error.htm"
สิ้นสุดถ้า
lngLenKey=เลน(strKey)
เลือกกรณี lngLenKey
กรณีที่ 0 ถ้าเป็นสตริงว่าง ให้ไปที่หน้าข้อผิดพลาด
Response.Redirect "error.htm"
กรณีที่ 1 ถ้าความยาวเป็น 1 แสดงว่าไม่มีการตั้งค่า
strNew1=""
strNew2=""
'Case Else หากความยาวมากกว่า 1 ให้เริ่มจากอักขระตัวแรกของสตริงและวนซ้ำผ่านสตริงย่อยที่มีความยาว 2 เป็นเงื่อนไขการสืบค้น
สำหรับ i=1 ถึง lngLenKey-(lngSubKey-1)
strSubKey=กลาง(strKey,i,lngSubKey)
strNew1=strNew1 & " หรือ U_Name เช่น %" & strSubKey & "%"
strNew2=strNew2 & "หรือ U_Info เช่น %" & strSubKey & "%"
ต่อไป
สิ้นสุดการเลือก
'รับคำสั่ง SQL ที่สมบูรณ์
AutoKey="Select * from T_Sample โดยที่ U_Name like %" & strKey & "% หรือ U_Info like %" & strKey & "%" & strNew1 & strNew2
ฟังก์ชันสิ้นสุด
-