0

語句を含むファイル、またはその名前に語句が含まれるファイルを検索しようとしています。

時々結果を持つクエリを取得することができましたが、いつ、なぜ結果が返されるのかわかりません。

これは私が使用しているクエリです:

SELECT TOP 5 System.ItemPathDisplay 
FROM SystemIndex 
WHERE scope ='file:' 
    AND (FREETEXT('MYPHRASE') 
    OR Contains(System.FileName,'MYPHRASE'))
    AND (Contains(System.ItemType,'.txt') 
    OR Contains(System.ItemType,'.docx') 
    OR Contains(System.ItemType,'.pptx') 
    OR Contains(System.ItemType,'.xlsx') 
    OR Contains(System.ItemType,'.pdf'))

MYPHRASE 名を含む、またはコンテンツに含まれるすべてのファイルを取得したいだけです。

これは私のoleconnectionstringです:

  string connectionString = "Provider=Search.CollatorDSO;Extended Properties=\"Application=Windows\"";
        OleDbConnection connection = new OleDbConnection(connectionString);

誰かが私のクエリの何が問題なのか教えてもらえますか?

4

1 に答える 1

0

次のようなC#コードで再帰検索を行うことができます

    void DirSearch(string MYPHRASE) 
{
    try 
    {
       foreach (string d in Directory.GetDirectories(MYPHRASE)) 
       {
        foreach (string f in Directory.GetFiles(d, txtFile.Text)) 
        {
           lstFilesFound.Items.Add(f);
        }
        DirSearch(d);
       }
    }
    catch (System.Exception excpt) 
    {
        Console.WriteLine(excpt.Message);
    }
}

これは、完全なコード例でそれを行う方法について詳しく説明しているこのマイクロソフトの記事から来ています。Microsoft も検索SDKを提供しており、これも正確な状況に応じて役立つ可能性があり、チェックする価値があるかもしれません。

編集:これは、あなたのようにSQLスタイルでそれを行うことについての素晴らしいブログです。あなたは正しいようです彼は、ファイルを表示するためにファイルをインデックスに入れる方法について言及しているので、チェックする価値があるかもしれません.

于 2015-08-07T15:14:13.150 に答える