カスタマイズの Index Server 検索ページを ASP Expression Web を使用して作成する方法

文書翻訳 文書翻訳
文書番号: 928700 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

カスタマイズされたインデックス サーバー検索ページを Microsoft Expression Web での Active Server Pages (ASP) を使用して作成する方法について説明します。

詳細

手順 1: Microsoft ASP.NET をインストールします。

ASP 機能で Expression Web を使用する前に ASP.NET インストールする必要があります。 ASP.NET をインストールする方法の詳細についてはをクリックして以下「サポート技術情報」(Microsoft Knowledge Base) 資料を参照。
928710Expression Web で Active Server Pages (ASP) 機能を使用する ASP.NET をインストールする方法

手順 2: で Expression Web フォーム ページを追加します。

  1. Expression Web を起動して、検索ページを作成したい Web サイトは、開きます。
  2. [ ファイル ] メニューの [ 新規作成 をポイントし、[ ページ ] をクリックして [ OK] をクリックします。
  3. [ 挿入 ] メニューの [ HTML ] をポイントし、[ 他の HTML タグ ] をクリックします。
  4. 右ペインで フォーム コントロール ] を展開し 入力 (テキスト) をダブルクリック、 ドロップダウン ボックス ] をダブルクリックして開きをダブルクリック 入力 (送信)
  5. [Web] ページで、手順 4 で挿入したテキスト ボックスをダブルクリックします。
  6. [ テキスト ボックスのプロパティ ] ダイアログ] ボックスに、[ 名前 ] ボックスに QUERYTEXT を入力します。
  7. [ 初期値 ] ボックスに、<%=Request("QUERYTEXT")%> を入力します。、[ OK] をクリック します。
  8. [Web] ページで、ドロップダウン ボックス手順 4 で挿入したをダブルクリックします。
  9. [ ボックスのプロパティ] ドロップ ダイアログ] ボックスに、[ 名前 ] ボックスに QUERYFIELD を入力します。
  10. [ 追加 ]、[ 選択 ] ボックスに DocAppName を入力します。
  11. 値を指定 チェック ボックスをオフを [ OK] をクリック します。
  12. 手順 10 〜 11、次のメニュー項目を追加を繰り返します。
    • キャラクタリゼーション
    • ファイル名
    • DocAuthor
    • DocTitle
  13. [OK] をクリックします。
  14. 送信 ボタンを右クリックして、[ フォーム プロパティ ] をクリックします。
  15. 他へ送信 ] をクリックし、 オプション を実行します。
  16. [ 操作 ] ボックスに、<%=Request.ServerVariables("URL")%> を入力します。 をして [ OK] を 2 回クリックします。
  17. [ ファイル ] の [ 保存 ] をクリックします。
  18. ファイル名 ] ボックスで IndexServerTest.asp を入力して、[ 保存 </a0>] をクリックします。

手順 3: ページに、サンプル ASP コードを追加します。

メモ Expression Web この資料からのサンプル コードを 場合、エラー メッセージが表示されるがあります。 式の Web、山かっこ (<) 誤って解釈することがあります。 この現象を回避するにはメモ帳の空白の文書に、サンプル コードを貼り付けます。 メモ帳で、コードをコピーし、Expression Web を貼り付けます。
  1. 右側のウィンドウのステータス バーの [HTML ビューに切り替えを実行する コード ] をクリックします。
  2. Type or paste the following code before the opening HTML tag:
    <%
      ' Force variable declaration.
      Option Explicit
    
      ' Declare all our variables.
      Dim strQueryText
      Dim strQueryField
      Dim strSQL
      Dim strName
      Dim strValue
      Dim objRS
      Dim objField
    
      ' This is the list of Index Server variables that will appear.
      ' You can customize the list of fields. For more information,
      ' see Microsoft Knowledge Base article 318387.
      Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle, FileName, Create, Access, Characterization, VPath"
    
      ' This is the default Index Server catalog for all Web content.
      ' For information about how to customize this, see Microsoft 
      ' Knowledge Base article 318387.
    
      Const strDataSource = "WEB"
    
      ' Get the value of the user-submitted search query.
      strQueryText = Request("QUERYTEXT")
      ' Set a default value if the user has not submitted anything.
      If Len(strQueryText) = 0 Then strQueryText = "%%"
    
      ' Get the field that the user wants to query against.
      strQueryField = Request("QUERYFIELD")
      ' Set a default value if the user has not specified a field.
      If Len(strQueryField) = 0 Then strQueryField = "DocTitle"
    %>
  3. コードを入力するか貼り付けます、次終了タグの後:
    ' Check if the user has entered a value in the form
    If strQueryText <> "%%" Then
    <%
      ' Build the SQL statement from the user-specified options.
      strSQL = "SELECT " & strDisplayFields & " FROM SCOPE() " & _
      	"WHERE ((" & strQueryField & " LIKE '%" & strQueryText & "%') AND " & _
      	"((VPath NOT LIKE '%/_vti%') AND (VPath NOT LIKE '%/_private%')))"
    
      ' Create a recordset object.
      Set objRS = Server.CreateObject("ADODB.Recordset")
    
      ' Open the recordset by using the SQL string with the Index Server provider.
      objRS.Open strSQL,"PROVIDER=MSIDXS;DATA SOURCE=" & strDataSource
    
      ' Are there any records to show?
      If objRS.EOF Then
    
        ' Show a default message if nothing is found.
        Response.Write "No Documents were Found." & vbCrLf  
    
      ' Otherwise...
      Else
    
        ' Start a table.
        Response.Write "<table border=""1"">" & vbCrLf
    
        ' Start the row for the header section.
        Response.Write "<tr>" & vbCrLf
        ' Loop through the fields collection.
        For Each objField in objRS.Fields
          ' Get the field's name.
          strName  = objField.Name
          ' If the field has a name, escape it for HTML.
          If Len(strName)  > 0 Then strName = Server.HTMLEncode(strName)
          ' Output the field name as a table header.
          Response.Write "<th>" & strName & "</th>" & vbCrLf
        Next
        ' End the row for the header section.
        Response.Write "</tr>" & vbCrLf   
    
        ' Loop through all the records.
        While Not objRS.EOF
          ' Start a row in the data section.
          Response.Write "<tr>" & vbCrLf
          ' Loop through the fields collection.
          For Each objField in objRS.Fields
            ' Get the field's value.
            strValue = objField.Value
            ' Look for null values.
            If Len(strValue) > 0 Then
              ' If the value is not null, escape it for HTML.
              strValue = Server.HTMLEncode(strValue)
            Else
              ' Otherwise, make it a non-breaking space character.
              strValue = "&#xa0;"
            End If
          ' Output the field value as table data.
            Response.Write "<td>" & strValue & "</td>" & vbCrLf
          Next
          ' End a row in the data section.
          Response.Write "</tr>" & vbCrLf
          ' Move on to the next record.
          objRS.MoveNext
         Wend
         Response.Write "</table>" & vbCrLf
      End If
    %>
    Else
    ' User has not entered any value in search form
        Response.Write "Please enter a Search Term before submitting the form" & vbCrLf
    End if
  4. [ ファイル ] の [ 保存 ] をクリックします。

手順 4: サンプル ASP ページをテストします。

  1. Expression Web が起動され、IndexServerTest.asp ページを開いてください。
  2. [ ファイル ] メニューの [ ブラウザーでプレビュー ] をポイントし、[ブラウザーを使用する] をクリックします。
  3. [テキスト] ボックスに、検索条件を入力します。 一覧でクエリにするフィールドをクリックします。
  4. 送信 をクリックします。 クエリに一致する任意の結果、ページ上の表に表示されます。

手順 5: サンプル ASP ページをカスタマイズします。

サンプル ASP ページをカスタマイズするのにには、次の方法のいずれかを使用します。

方法 1: カタログを変更します。

複数のインデックス サーバー カタログが Web サーバー上で定義されている場合、サンプル ページを別のカタログを使用して構成できます。 これを行うには、次の手順を実行します。
  1. Expression Web を起動してオープンし、サンプル ASP ページこの資料の前半で作成したそのします。
  2. コード の HTML ビューに切り替えるにはクリックします。
  3. 次のコード行を検索:
    Const strDataSource = "WEB"
  4. カタログの名前に、 strDataSource 変数の値を変更します。 の例の行は次のコードを示します:
    Const strDataSource = My_Custom_Catalog
  5. ファイル ] メニューの [ 保存 ] をクリックして、ファイルを閉じます。

方法 2: フィールド] ボックスの一覧を変更します。

  1. Expression Web を開始して、この資料の前半で作成したサンプル Web ページ、開きます。
  2. コード の HTML ビューに切り替えるにはクリックします。
  3. 次のコードのようなコード行を検索:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName"
  4. 値の一覧を変更します。 各フィールド名をコンマで区切ります。 の例の行は次のコードを示します:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
  5. ファイル ] メニューの [ 保存 ] をクリックして、ファイルを閉じます。
次の表の値を strDisplayFields 変数を使用できます。
元に戻す全体を表示する
フィールド名 フィールドの種類 説明
アクセス日付/時刻最後に、ファイルにアクセスします。
キャラクタリゼーションテキスト/文字列キャラクタリゼーション、またはインデックス サーバーによって計算された、文書の概要
作成日付/時刻ファイルが作成された時点
ディレクトリテキスト/文字列しないファイル名を含む、ファイルの物理パス
DocAppNameテキスト/文字列ファイルを作成したアプリケーションの名前
DocAuthor テキスト/文字列ドキュメントの作成者
DocByteCount数値 文書内のバイト数
DocCategoryテキスト/文字列メモ、スケジュール、ホワイト ペーパーなど、文書の種類
DocCharカウント数値文書内の文字数
DocCommentsテキスト/文字列ドキュメントに関するコメント
DocCompanyテキスト/文字列ドキュメントが記述されている会社の名前
DocCreatedTm日付/時刻ドキュメントが作成された時点
DocEditTime日付/時刻ドキュメントの編集に費やされた時間の合計
DocHiddenCount数値Microsoft PowerPoint プレゼンテーション内の非表示のスライドの数
DocKeywordsテキスト/文字列ドキュメントのキーワード
DocLastAuthorテキスト/文字列ドキュメントを編集した最新ユーザー
DocLastPrinted日付/時刻図面が最後に印刷された時刻
DocLastSavedTm日付/時刻 ドキュメントを最後に保存された時点
DocLineCount数値文書に含まれる行の数
DocManagerテキスト/文字列ドキュメントの作成者のマネージャーの名前
DocNoteCount数値PowerPoint プレゼンテーションにメモを持つページの数
DocPageCount数値文書内のページ数
DocParaCount数値文書内の段落数
DocPartTitlesテキスト/文字列文書パーツの名前。 たとえば、Microsoft Excel では、スプレッドシートは、文書パーツです。 Microsoft PowerPoint で、スライドはドキュメント要素です。 Microsoft Word では文書に含まれるドキュメントのファイル名はドキュメント パーツです。
DocPresentationTargetテキスト/文字列PowerPoint プレゼンテーションの 35 mm、プリンター、またはビデオ) などのターゲット フォーマット
DocRevNumberテキスト/文字列ドキュメントの現在のバージョン番号
DocSlideCount数値PowerPoint プレゼンテーションのスライドの数
DocSubjectテキスト/文字列ドキュメントの件名
ドキュメント テンプレートテキスト/文字列ドキュメントのテンプレートの名前
DocTitleテキスト/文字列ドキュメントのタイトル
DocWordCount数値文書内の単語数
FileIndex数値ファイルの一意の ID
ファイル名テキスト/文字列ファイルの名前
ヒット数数値ヒット数、またはファイルで、クエリに一致する単語の数
パステキスト/文字列ファイル名を含む、ファイルの完全な物理パス
ランク数値行のランク。 この値の 0 から 1000 まで範囲です。 大きい数値は優れた一致を示します。
ShortFileNameテキスト/文字列短い (8. 3) のファイル名
サイズ数値バイト単位でファイルのサイズ
VPathテキスト/文字列ファイル名を含むファイルの完全な仮想パス。 可能な 1 つ以上のパスが存在する場合はの特定のクエリに対する最適が選択されます。
書き込み日付/時刻最後に、ファイルに書き込まれました。

トラブルシューティング

  • インデックス サービスが実行されていない場合、次のエラー メッセージが表示されます。
    Microsoft OLE DB プロバイダーのインデックス サービスのエラー '80041820' サービスが実行されていません。 /IndexServerTest.asp、ライン 44
    この問題を解決するにはインデックス サービスを開始します。
  • カタログが無効で、エラー メッセージが表示されたらを指定する場合、次のエラー メッセージのような。
    Microsoft OLE DB プロバイダーのインデックス サービス エラー '8004181d' がカタログはありません。 /IndexServerTest.asp、ライン 44
    この問題を解決するには、 strDataSource 変数の値を確認します。 それが正しい場合はインデックス サービスを再開します。

関連情報

Microsoft Windows 2000 インデックス サービスの使用方法の詳細については、以下の「クリック、記事の「サポート技術情報」(Microsoft Knowledge Base) を表示します。
185985インデックス サービスを照会および META TAG 情報の表示を使用してください。
256276エラー メッセージ: カタログがありません
229282ASP コード、Index Server 結果ページのソースを表示すると表示されます。

プロパティ

文書番号: 928700 - 最終更新日: 2006年12月11日 - リビジョン: 1.0
この資料は以下の製品について記述したものです。
  • Microsoft Expression Web [1.0]
キーワード:?
kbhowto kbexpertiseinter kbmt KB928700 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:928700
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com