ASP를 사용하여 검색 엔진의 기능을 구현하는 것은 매우 편리하지만 지능형 검색을 구현하는 방법은 무엇입니까? 이 기사를 읽은 후에는이 기능을 구현하는 것이 실제로 매우 간단하다는 것을 알게 될 것입니다. 잘못된 새로운 기술 채널의 편집자를 따르려면 자세한 내용을 알 수 있습니다!
ASP 지능형 검색을 구현하는 단계
첫 번째 단계는 db_sample.mdb라는 데이터베이스를 만드는 것입니다 (이 기사는 Access2000 번호를 사용합니다.
데이터베이스는 예제로 사용됩니다.) 그리고 그 안에 테이블 t_sample을 만듭니다. 표 t_sample에는 다음 필드가 포함됩니다.
ID 자동 번호 매기기
u_name 텍스트
u_info 노트
두 번째 단계에서는 검색 페이지 검색 설계를 시작합니다. 이 페이지에는 양식이 포함되어 있습니다
(FRM_SEARCH), 양식에는 텍스트 상자와 제출 버튼이 포함되어 있습니다. 형식의 방법을 넣으십시오
Nature를 "Get"으로 설정하면 작업 속성이 "Search.asp"로 설정되어 웹 페이지 자체에 제출하는 것을 의미합니다. 코드는 다음과 같습니다
:
키워드를 입력하십시오 :
다음으로, 우리는 지능형 검색 구현의 핵심 부분을 입력합니다.
먼저 데이터베이스 연결을 설정하십시오. Search.asp의 시작 부분에 다음 코드를 추가하십시오.
<%
Dim Strprovider, CNN
strprovider = "제공자 = microsoft.jet.oledb.4.0; data source ="
strprovider = strprovider & server.mappath ( "/") &
"/data/db_sample.mdb" '데이터베이스가 홈페이지의 루트 디렉토리의 데이터 디렉토리에 저장되어 있다고 가정 해
set cnn = server.createobject ( "adodb.connection")
CNN. OPEN STRPROVIDER 'OPEN OPEN DATABASE 연결
%>
다음으로 ASP 페이지에서받은 데이터를 판단하고 데이터베이스에서 검색하십시오.
<%
Dim S_Key, RST, strsql
s_key = trim (request ( "key")) '검색 키워드의 값 가져 오기
s_key <> ""라면
set rst = server.createobject ( "adodb.recordset")
strsql = autokey (s_key) '커스텀 기능 autokey ()가 여기에서 사용됩니다.
숫자는 지능형 검색의 핵심입니다
RST.OPEN STRSQL, CNN, 3,2 '검색 레코드를 얻으십시오
rst.bof 및 rst.eof 인 경우
%>
결과가 발견되지 않았습니다! ! !
<%
또 다른
%>
검색 이름은 "< %= s_key %입니다.
> "의 항목은 총 < %= rst.recordCount %에서 발견되었습니다.
> 항목 :
<%
rst.
링크를 설정합니다
%>
href = "info.asp? id = <%= rst ("id ")%>"target = "_ blank"> <%= rst ( "u_name")
%>
<%= 왼쪽 (rst
( "u_info"), 150) %>>
<%
rst.movenext
향하게 하다
rst.close
RST = 아무것도 설정하지 않습니다
끝 If
끝 If
%>
위의 코드에는 지능적 인 검색을 구현하는 커스텀 기능이 있습니다.
마음이있는 곳. 코드는 다음과 같습니다.
<%
기능 autokey (stry)
const lngsubkey = 2
Dim Lnglenkey, Strnew1, Strnew2, I, Strsubkey
'합법적이지 않은 경우 문자열의 합법성을 확인하십시오. 오류 페이지로 이동하십시오. 필요에 따라 오류 페이지를 수행 할 수 있습니다
설정을 만드십시오.
악기 (strkey, "=") <> 0 또는 악기 (strkey, "`"<> 0 또는 악기 인 경우
(strkey, " '") <> 0 또는 악기 (strkey, "") <> 0 또는 악기 (strkey, "") <> 0 또는 악기 (strkey, "") <> 0 또는
악기 (stry, " '") <> 0 또는 악기 (stry, chr (34)) <> 0 또는 악기 (strkey, "/")
<> 0 또는 악기 (stry, ",") <> 0 또는 악기 (strkey, "<") <> 0 또는 악기
(strkey, ">") <> 0
response.redirect "error.htm"
끝 If
lnglenkey = Len (stky)
사례 lnglenkey를 선택하십시오
CASE 0 '빈 문자열 인 경우 오류 페이지로 이동하십시오.
response.redirect "error.htm"
CASE 1 '길이가 1 인 경우 값이 설정되지 않습니다.
strnew1 = ""
strnew2 = ""
CASE ELSE '길이가 1보다 큰 경우 문자열의 첫 번째 문자에서 시작하여 길이를
2의 쿼리 조건으로서의 하위 문자열
i = 1에서 lnglenkey- (lngsubkey-1)
strsubkey = mid (stry, i, lngsubkey)
strnew1 = strnew1 & "또는 U_name like '%"& strsubkey
& "%'"
strnew2 = strnew2 & "또는 u_info like '%"& strsubkey
& "%'"
다음
종료 선택
'완전한 SQL 문을 얻으십시오
autokey = "select * from t_sample where u_name과 같은 '%"& strkey
& "%'또는 u_info like'%"& strkey & "%'"& strnew1 & strnew2
엔드 기능
%>
지능형 검색을 달성하기 위해 핵심은 키워드를 자동으로 그룹화하는 것입니다. 여기서 우리는 만든다
길이 2가있는 하위 문자열로 루핑하는 방법이 사용됩니다. 기판 길이를 1, 3, 4 등으로 설정하지 않겠습니까?
기판 길이가 2 미만인 경우, 1, 1, 1, 키워드 그룹의 기능이 손실되고, 기판 길이가
2보다 큰 경우 일부 문구가 손실됩니다. const lngsubkey = 2를 다른 숫자로 변경하고 시도 할 수 있습니다.
, 어느 것이 더 낫거나 나쁘는지는 분명합니다.
마지막으로, 데이터 연결을 끄고 리소스를 확보하는 것을 잊지 마십시오.
<%
CNN.CLOSE
CNN = 아무것도 설정하지 않습니다
%>
위의 것은 지능형 검색을 구현하는 방법입니다. 보다 기술적 인 지식을 보려면 잘못된 새로운 기술 채널에 계속주의를 기울이십시오!