Windows搜索查询c#
本文关键字:查询 搜索 Windows | 更新日期: 2023-09-27 18:07:04
我正在尝试搜索包含短语或其名称包含短语的文件。
我实现了获得一个查询,有时有结果,但我不知道何时以及为什么返回结果。
这是我正在使用的查询:
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);
谁能告诉我我的查询有什么问题?
你可以在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);
}
}
来自微软的一篇文章,该文章用完整的代码示例详细介绍了如何做到这一点。微软还提供了一个搜索SDK,它也可以根据你的具体情况提供帮助,可能值得一试。
编辑:这是一个很好的博客做它在sql风格像你,你似乎是对的。他确实提到了如何将文件放入索引以显示它们,因此可能值得检查。