Я использую ASP.NET 4.6.1 в Windows Server 2008 r2 с помощью сервера индексирования.Microsoft Search Server или Microsoft Search Service в ASP.NET
Я использую Microsoft OLE DB Provider для службы индексирования Microsoft, тот же провайдер MSIDXS
Теперь я хочу использовать Windows Server 2012 R2. не
Indexing Service больше не поддерживается в Windows XP и недоступны для использования в качестве в Windows 8. Вместо использования Windows Search для стороне клиента поиска и Microsoft Search Server Express для серверной стороны поиска.
Как использовать использование Microsoft Search в ASP.NET?
Я запутался: Я использую для Windows Search Server или Windows Search Service?
Какой Поставщик OLE DB не требуется?
Как установить Windows Search Server?
Как установить Служба поиска Windows? (возможно, в Windows 2012 R2)
Загрузка и установка Windows Search Server не устанавливает поставщика OLE DB . Также не устанавливается Windows SDK. Поставщик устанавливается, когда установлена служба поиска Windows.
В операционной системе Win7/8 для настольных компьютеров это устанавливается по умолчанию (я считаю). На сервере Windows Server 2012 вы должны включить эту функцию.
Мой код с использованием индексирования сервера в Windows 2008 R2 + ASP.NET:
// Catalog Name
string strCatalog = txtNombreCatalogo.Text;
string strQuery = "";
strQuery = "Select DocTitle,Filename,Size,PATH,URL";
strQuery += ", DocAuthor, vpath, Write, Rank, Create, Characterization, DocCategory";
strQuery += " from Scope() where FREETEXT('" + txtNombreFichero.Text + "')";
// txtNombreFichero.Text is the word that you type in the text box to query by using Indexing Service.
string connstring = "Provider=MSIDXS;Integrated Security .='';Data Source=" + strCatalog;
//connstring = "Provider=MSIDXS.1;Integrated Security .='';Data Source=" + strCatalog;
var conn = new System.Data.OleDb.OleDbConnection(connstring);
conn.Open();
var cmd = new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
var testDataSet = new System.Data.DataSet();
cmd.Fill(testDataSet, "SearchResults");
DataView source = new DataView(testDataSet.Tables[0]);
dgResultados.DataSource = source;
dgResultados.DataBind();