ASPを使用して検索エンジンの機能を実装するのは非常に便利ですが、インテリジェント検索を実装する方法は?この記事を読んだ後、この機能を実装するのは実際には非常に簡単であることがわかります。間違った新しいテクノロジーチャネルの編集者をフォローして、詳細をご覧ください!
ASPインテリジェント検索を実装する手順
最初のステップは、db_sample.mdbと呼ばれるデータベースを作成することです(この記事ではAccess2000番号を使用しています
データベースは例として使用され、その中にテーブルt_sampleを作成します。表T_Sampleには、次のフィールドが含まれています。
ID自動番号付け
u_nameテキスト
u_infoノート
2番目のステップでは、検索ページSearch.aspの設計を開始します。このページにはフォームが含まれています
(frm_search)、フォームにはテキストボックスと送信ボタンが含まれています。フォームの方法を置きます
自然を「取得」するように設定すると、アクション属性は「search.asp」に設定されています。これは、それをWebページ自体に送信することを意味します。コードは次のとおりです
:
キーワードを入力してください:
次に、インテリジェント検索の実装の重要な部分を入力します。
まず、データベース接続を確立します。 search.aspの先頭に次のコードを追加します。
<%
Dim Strprovider、CNN
strprovider = "provider = microsoft.jet.oledb.4.0; data source ="
strprovider = strprovider&server.mappath( "/")&
"/data/db_sample.mdb" 'データベースがホームページのルートディレクトリのデータディレクトリに保存されているとします
cnn = server.createObject( "adodb.connection")を設定します
cnn.open strprovider 'オープンデータベース接続
%>
次に、ASPページで受信したデータを判断し、データベースで検索します。
<%
dim s_key、rst、strsql
s_key = trim(request( "key")) '検索キーワードの値を取得します
s_key <> "" thenの場合
rst = server.createObject( "adodb.recordset")を設定します
strsql = autokeyy(s_key) 'カスタム関数Autokeyy()がここで使用されます。
番号はインテリジェント検索の中核です
rst.open strsql、cnn、3,2 '検索レコードを取得します
rst.bofとrst.eofの場合
%>
結果は見つかりませんでした! ! !
<%
それ以外
%>
検索名は「<%= s_key%です
> "のアイテムは合計で見つかりました<%= rst.recordcount%
>アイテム:
<%
rst.eof 'ではありませんが、検索された文字を表示するためにレコードセット全体を旅行します
リンクを設定します
%>
href = "info.asp?id = <%= rst(" id ")%>" target = "_ blank"> <%= rst( "u_name")
%>
<%=左(rst
( "u_info")、150)%>>
<%
rst.movenext
ウェンド
rst.close
rst = Nothingを設定します
ifを終了します
ifを終了します
%>
上記のコードには、インテリジェント検索を実装するカーネルであるカスタム関数Autokekeyがあります
心がどこにあるのか。コードは次のとおりです。
<%
function autokekey(strkey)
const lngsubkey = 2
dim lnglenkey、strnew1、strnew2、i、strsubkey
「文字列の合法性を確認してください。合法でない場合は、エラーページに移動します。必要に応じてエラーページを実行できます
設定を作成します。
if strue(strkey、 "=")<> 0またはstrkey( "` ")<> 0またはinstr
(strkey、 "'")<> 0またはstrome(strkey、 "")<> 0またはstrue(strkey、 "")<> 0またはstrkey(strkey、 "")<> 0または
Instr(strkey、 "'")<> 0またはstrkey、strkey、chr(34))<> 0またはstrkey、 "/")
<> 0またはstrue(strkey、 "、")<> 0またはstrkey( "<")<> 0またはinstr
(strkey、 ">")<> 0それから
Response.redirect "error.htm"
ifを終了します
lnglenkey = len(strkey)
ケースlnglenkeyを選択します
ケース0 '空の文字列の場合は、エラーページに移動します
Response.redirect "error.htm"
ケース1 '長さが1の場合、値は設定されていません
strnew1 = ""
strnew2 = ""
ケースelth '長さが1より大きい場合、文字列の最初の文字から始めて、
2のクエリ条件としてのサブストリング
i = 1からlnglenkey-(lngsubkey-1)
strsubkey = mid(strkey、i、lngsubkey)
strnew1 = strnew1& "またはu_name like '%"&strsubkey
& "% '"
strnew2 = strnew2& "またはu_info like '%"&strsubkey
& "% '"
次
[選択]を終了します
'完全なSQLステートメントを取得します
autokey = "select * from t_sample where u_name like '%"&strkey
& "% 'またはu_info like'%"&strkey& "% '"&strnew1&strnew2
エンド関数
%>
インテリジェントな検索を実現するために、コアは検索キーワードを自動的にグループ化することです。ここで私たちは作ります
長さ2のサブストリングにループする方法が使用されます。サブストリングの長さを1、3、4または何かに設定してみませんか?
これは、サブストリングの長さが2未満の場合、つまり1、グループ化キーワードのグループが失われ、サブストリングの長さが失われるためです。
2を超えると、いくつかのフレーズが失われます。 const lngsubkey = 2を他の数字に変更して試してみることができます
、どちらが良いか悪いかは明らかです。
最後に、データ接続をオフにしてリソースを解放することを忘れないでください。
<%
cnn.close
CNN =何も設定しません
%>
上記は、インテリジェント検索を実装する方法です。より技術的な知識については、間違った新しいテクノロジーチャネルに注意を払い続けてください!