2011-12-21 13 views
0

私は初めてWindowsインデックスサービスを使用しています。私はクエリからdoctitleとファイル名を返す必要があります。インデックスサービス空のファイル名のプロパティ

select doctitle, filename, vpath, rank, characterization from scope() where FREETEXT(Contents, '" & searchText & "') order by rank desc 

Iセットアップかなり基本的なカタログは、単にフォルダを指しています。私はウェブサイトからこのコードを使用しています、ファイルはローカルマシン上にあり、認証は問題ではありません。

検索結果は返されますが、ファイル名のプロパティには何も表示されません。 doctitleには人が住んでいますが、他には何もありません。

おかげで、 マイク

答えて

0

私はこの記事で答えを見つけました。 http://support.microsoft.com/kb/954822

ますので に行われた設計変更の Windows Server 2008でないインデックス、インターネットインフォメーションサービス(IIS)WebサイトがIIS 7.0をすることができます。

後継者またはインデックスサービスはWindows Searchです。 Windows Search Wiki

Windows Searchを使用するようにサイトを変更する必要があるようです。

1

これが解決されてから数ヶ月が経ちましたが、現在Windows Server 2008 R2でWISを使用しており、これを検索しています。時々私は答えを得ることができないので、私はインターネットを精査し、この解決策を考え出しました。

私はあなたに必要なコードを変換することができると確信していますが、...

あなたは、サーバーマネージャの役割から、Windows Server 2003のファイルサービスインデックスサービスをインストールする必要があります。

カタログプロパティでは、継承可能な設定を無効にして、WWWサーバーを適切に設定しました。また、キャラクタライゼーションの列に250文字分の抄録を作成しました。

私は私のカタログを設定するとき、私は含ま/私のウェブサイトのディレクトリの特定のフォルダを除外(サイトのルートを含む)に、私はそれを照会するとき、私は以下のSQLステートメントを使用:

EDIT:注意

using(OleDbConnection conn = new OleDbConnection("Provider=MSIDXS.1;Data Source='"+catalog+"'")) 
{ 
    //your connection and data collection code here 
} 
:ファイル

String fileTypes = "\".aspx\" OR \".doc*\" OR \".xls*\" OR \".ppt*\" OR \".txt\" OR \".pdf\" OR \".rtf\""; 
String q = query.Text.Replace("'", "''"); 

sSqlString = "SELECT Filename, DocTitle, Size, VPath, Path, Rank, Write, Contents, Characterization "; 
sSqlString += "FROM SCOPE() "; 
sSqlString += "WHERE (CONTAINS(Contents, '\""+q+"\"') "; 
sSqlString += "OR FREETEXT(Filename, '\""+q+"\"')) "; 
sSqlString += "AND CONTAINS(Filename, '"+fileTypes+"') "; 
sSqlString += "ORDER BY rank DESC, write DESC"; 

の名前を照会するFREETEXT(Filename, '\""+q+"\"'))を使用することは、私が使用してステートメントを使用して、私の接続を作成します

私が遭遇した問題の1つは、特定のファイルタイプです。ドキュメント作成者がMS Office製品にドキュメントタイトルを含まない場合、DocTitleは取得できません。 pdfに認識可能なテキストがなく、文書のプロパティが記入されていない場合、docTitleとContentは空になります。私がそれを見る方法は、ビジネスがファイルを508に準拠させないと、結果が適切に表示されないことです。

私が使用しているListViewテンプレートの簡単なスニペットです。私の場合はdocTitleは、結果のヘッダーに使用され

<ItemTemplate> 
    <h3><a href="<%# vFilePath(Eval("Path")) %>"><%# Eval("DocTitle").ToString().Trim() == "" ? Eval("Filename").ToString().Split('.')[0] : ProperCase(Eval("DocTitle").ToString()) %></a></h3> 
    <p><span style="color:#0083be;"> 
     <%# Request.ServerVariables["HTTP_HOST"].Length+vFilePath(Eval("Path")).Length > 100 ? (Request.ServerVariables["HTTP_HOST"]+vFilePath(Eval("Path"))).Substring(0,100)+"..." : Request.ServerVariables["HTTP_HOST"]+vFilePath(Eval("Path")) %></span><br /> 
     <span style="color:#4d4e53"><%# String.Format("{0:MMMM dd, yyyy}",Eval("Write")) %> - </span> 
     <%# Eval("Characterization").ToString().Trim() == "" ? "..." : Eval("Characterization").ToString().Length == 250 ? 
     Eval("Characterization").ToString().Substring(0,250)+"..." : Eval("Characterization")%> 
    </p>     
</ItemTemplate> 

ので、私はそれが空の場合、私は空の文字列を取り、ファイル名、拡張子マイナスと交換できることを考え出し。

キーワードと説明を使用してメタタグを正しく使用しているかどうかを確認するときは、クエリを作成するときに確認してください。これと.aspxページの静的コンテンツはWISによって読み込まれます。 Characterizationを使用してコンテンツを取得することに気づくでしょう。

このlinkには、vb.netコードとともにW2k8 WISを設定する手順が記載されています。

このlinkは、照会および/または表示できる多数のプロパティの優れた情報源です。

関連する問題