Я пытаюсь найти удаленный файловый ресурс (работает под управлением Windows Server 2008 R2)
для файлов, которые содержат текст. Если я попробую это, все будет работать нормально:
SELECT System.FileName
FROM RemoteServer.SystemIndex
WHERE SCOPE='file://RemoteServer/FileShare'
и я получаю много результатов. Но как только я пытаюсь найти какой-то текст, я не получаю результатов:
SELECT System.FileName
FROM RemoteServer.SystemIndex
WHERE SCOPE='file://RemoteServer/FileShare'
AND CONTAINS('a')
если я попробую его на моем компьютере (Windows 7), он будет работать нормально:
SELECT FileName
FROM SystemIndex
WHERE CONTAINS('a')
Вот мой код на C #, который я использую для поиска:
string connectionString = "Provider=Search.CollatorDSO;Extended Properties=\"Application=Windows\"";
using (OleDbConnection myOleDbConnection = new OleDbConnection(connectionString))
{
myOleDbConnection.Open();
using (OleDbCommand myOleDbCommand = new OleDbCommand(sql, myOleDbConnection))
{
using (myDataReader = myOleDbCommand.ExecuteReader())
{
if (!myDataReader.HasRows)
{
System.Console.WriteLine("Query returned 0 rows!");
}
else
{
// Process results here
}
}
}
}
Я пробовал следующее:
- Перестроен индекс
- Проверено, что папка "FileShare" была добавлена на сервере для индексации
- Проверено на вкладке «Типы файлов», что отмечены правильные расширения и что для этих расширений выбраны «Свойства индекса и содержимое файла»
- Перезапущена служба индексирования
- Перезапустил сам сервер
безрезультатно.
Есть еще предложения? Разочаровывает, так как я на 99% пути туда. Весь этот поиск на рабочем столе Windows кажется довольно неподдерживаемым, может, мне стоит его скопировать и использовать что-нибудь еще?